首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

(5/9)*(f-32)与五*(f-32)/9

2013-09-06 
(5/9)*(f-32)与5*(f-32)/9今天在Linux下用c语言写个小程序玩玩,主要就是根据华氏温度计算摄氏温度。公式是:

(5/9)*(f-32)与5*(f-32)/9

今天在Linux下用c语言写个小程序玩玩,主要就是根据华氏温度计算摄氏温度。公式是:摄氏度=(5/9)*(华氏度-32)

代码很简单~

#include<stdio.h>main(){int c,f;/*c代表摄氏度,f代表华氏度*/int lower,upper,step;lower=0;upper=300;step=20;f=lower;while(f<=upper){c=5*(f-32)/9;printf("%d\t%d\n",f,c);f=f+step;}}

上面这个c=5*(f-32)/9;如果换成(5/9)*(f-32),看起来两者是等价的,但出来的结果显示计算出的摄氏度全是0,为啥呢?

因为定义成int类型之后,涉及到四则运算,并不是对最后计算出来的精准结果做int转型,而是每一步的结果都是一个int类型,而5/9显然等于0了。。

所以所有的摄氏度出来都是0。。

我又用java测试了一下,同样,都是这种计算方式,所以大家以后使用int类型的时候要小心这个问题了~

热点排行