在我的源代码中,如果我将1.23写为文字,例如doThis(1.23),gcc假设它是双倍的。
除非输入doThis((float)1.23),否则有一种方法可以使用浮点数作为十进制文字/常量,除非在单个源文件中另有说明?
超级奖励点,是否有一种方法可以跨越(几乎)每个C编译器?
答案 0 :(得分:7)
是的,标准方法是写1.23f
。它适用于每个C编译器,因为它在ISO C99部分 6.4.4.2浮动常量中定义。 ISO C90和K& R具有相似的定义。
答案 1 :(得分:5)
尝试:
float fred = 0.37f;
答案 2 :(得分:2)
尝试123.4F
获取浮点常量
答案 3 :(得分:2)
gcc还有-fsingle-precision-constant选项,告诉编译器将常量视为单精度。见http://gcc.gnu.org/wiki/FloatingPointMath