c语言中,用c=5*(f-32)/9可以运行成功,但换成c=5/9*(f-32)或c=(5/9)*(f-32)运行得到的结果都是0.为什么
c语言中,用c=5*(f-32)/9可以运行成功,但换成c=5/9*(f-32)或c=(5/9)*(f-32)运行得到的结果都是0.为什么
日期:2021-11-12 17:29:07 人气:1
是类型转换的问题啊
f应该是之前就定义了的实型变量吧,
c=5*(f-32)/9等价于c=((5*(f-32))/9),先算f-32,由于f是实型数据,所以32先变成实型数据,之后进行的运算,都行转换为实型数据
但是c=5/9*(f-32)或c=(5/9)*(f-32),都是先进行5/9的,由于两个都是整型数据,结果也是整型的,值为0,所以之后无论是什么运算都是0*X啊,当然结果是0
f应该是之前就定义了的实型变量吧,
c=5*(f-32)/9等价于c=((5*(f-32))/9),先算f-32,由于f是实型数据,所以32先变成实型数据,之后进行的运算,都行转换为实型数据
但是c=5/9*(f-32)或c=(5/9)*(f-32),都是先进行5/9的,由于两个都是整型数据,结果也是整型的,值为0,所以之后无论是什么运算都是0*X啊,当然结果是0