gpt4 book ai didi

c - 为什么此 C 代码生成 double 而不是 float ?

转载 作者:太空狗 更新时间:2023-10-29 15:09:28 25 4
gpt4 key购买 nike

摄氏 = (5.0/9.0) * (fahr-32.0);

这只是 C 开发人员决定的开发选择还是有原因?我相信 float 比 double 小,所以它可能是为了防止由于不知道使用什么十进制格式而导致的溢出。是这个原因,还是我忽略了什么?

最佳答案

celsius = (5.0/9.0) * (fahr-32.0);

在此表达式中,5.09.032.0double。这是浮点常量的默认类型 - 如果您希望它们是 float,那么您可以使用 F 后缀:

celsius = (5.0F/9.0F) * (fahr-32.0F);

请注意,如果 fahr 是一个 double,那么最后一个表达式的结果将仍然是一个 double:正如 Vaibhav 指出的那样,类型的提升是为了避免潜在的精度损失。

关于c - 为什么此 C 代码生成 double 而不是 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com