celsius = (5.0/9.0) * (fahr-32.0);
它只是C开发人员决定的开发选择还是有理由这样做?我相信浮点数小于一个浮点数,因此可能是为了防止因不知道使用哪种十进制格式而导致的溢出.这是原因,还是我忽略了什么?
celsius = (5.0/9.0) * (fahr-32.0);
在这个表达式中,5.0
,9.0
,和32.0
是double
秒.这是浮点常量的默认类型 - 如果您希望它们是float
s,那么您将使用F
后缀:
celsius = (5.0F/9.0F) * (fahr-32.0F);
请注意,如果fahr
是a double
,那么最后一个表达式的结果仍然是double
:如Vaibhav所指出的那样,类型的提升方式可以避免可能失去精度.