【发布时间】:2012-11-07 19:34:31
【问题描述】:
C/C++ 中双精度浮点值的表示法是什么?
.5 代表的是双精度值还是浮点值?
我很确定 2.0f 被解析为浮点数,2.0 被解析为双精度,但 0.5 呢?
【问题讨论】:
-
为什么
.5vs..5f与2.0vs.2.0f区别对待? -
好吧,也许不是那么明显。但是,几乎在每种语言中,小数点符号前的零都是可选的。即使在袖珍计算器上输入数字:)
-
但请注意:没有小数点,它会变成整数文字。后缀
f是非法的... 另请注意,在大多数情况下,您不需要附加f,例如在float x = .5;中。编译器会将其视为浮点数。 (实际上,它是一个分配给浮点数的双精度常量,但转换是在编译时完成的,因此它生成的程序代码与附加f时相同。)如果该值是整数,您甚至可以省略小数符号。但是,如果在上下文中接受 float 和 double 会变得很危险,例如关于函数重载等。 -
@leemes 是的,大多数情况下,您可以在使用文字初始化浮点变量时省略 f 后缀,但并非总是如此,请参阅下面的答案。
标签: c++ floating-point numbers double literals