在计算华氏法表示的温度与摄氏温度时,会用到c=(5.0/9)*(f-32)/这个式子。
万万不能把5.0/9的5.0写成5,错误虽小,但是结果却不对。
原因:5/9是指整形相除,结果为整数0,而5.0/9为浮点数与整数相除,由于整数和浮点数在内存里的存储规则不一样,整数和浮点数之间加减乘除没有办法直接按整数或者浮点数的规则计算,最简单的累加也不行。 所以C 语言做四则运算时会自动隐式转换改变参数类型,当四则运算符的两端数字类型不一样就会触发这种隐式转换,一般来说浮点数有最高的优先级。因此,5.0/9的除数9会优先转换成浮点数再除。
当然也可以写成