C++ 用于指定零浮点文本的语法

C++ 用于指定零浮点文本的语法,c++,syntax,floating-point,language-lawyer,literals,C++,Syntax,Floating Point,Language Lawyer,Literals,有趣的是:-)如果指定0f,该值将被解释为八进制整数文本。因此,不允许使用f(十进制15)00f和.f也不起作用。唯一有效的方法是0.f和.0f。还有别的办法吗?不过,我还是不明白为什么0.f有效。0是否解释为八进制前缀?C++当然是复杂的,甚至是最基本的语法~> 不过,我还是不明白为什么是0 它可以工作,因为字符使其成为浮点文字。带有f的浮点文字是浮点。小数部分是可选的,如果省略,则为零 由于0..1之间的值使用0.X语法,因此不能使用八进制浮点文字 0是否解释为八进制前缀 如果是整数文本,则

有趣的是:-)如果指定
0f
,该值将被解释为八进制整数文本。因此,不允许使用
f
(十进制
15
00f
.f
也不起作用。唯一有效的方法是
0.f
.0f
。还有别的办法吗?不过,我还是不明白为什么
0.f
有效。
0
是否解释为八进制前缀?C++当然是复杂的,甚至是最基本的语法~> 不过,我还是不明白为什么是0

它可以工作,因为
字符使其成为浮点文字。带有
f
的浮点文字是
浮点
。小数部分是可选的,如果省略,则为零

由于0..1之间的值使用
0.X
语法,因此不能使用八进制浮点文字

0是否解释为八进制前缀

如果是整数文本,则前缀是八进制文本的语法。例如:01是八进制,0x1是十六进制,1是十进制

不过,我还是不明白为什么是0

它可以工作,因为
字符使其成为浮点文字。带有
f
的浮点文字是
浮点
。小数部分是可选的,如果省略,则为零

由于0..1之间的值使用
0.X
语法,因此不能使用八进制浮点文字

0是否解释为八进制前缀


如果是整数文本,则前缀是八进制文本的语法。例如:01是八进制,0x1是十六进制,1是十进制。

f
不是有效的八进制文字,因此我怀疑它是否被解释为0f中的一个。请看:我建议您参考@NathanOliver上的文档,它似乎表明
0f
中的
f
被解释为十进制
15
。我(相信)最常看到的就是
0.0f
,不管值多少。在拯救一两个角色上付出太多的努力似乎…被误导了,至少对我来说是这样(除非你是在做代码高尔夫或者其他类似的事情)。你是怎么做到的。它说有一个错误,f是一个无效的八进制常数,这意味着
0f!=15
因为
0f
是一个错误。
f
不是有效的八进制文字,所以我怀疑它是否被解释为0f中的一个。请看:我建议您参考@NathanOliver上的文档,它似乎表明
0f
中的
f
被解释为十进制
15
。我(相信)最常看到的就是
0.0f
,不管值多少。在拯救一两个角色上付出太多的努力似乎…被误导了,至少对我来说是这样(除非你是在做代码高尔夫或者其他类似的事情)。你是怎么做到的。它说有一个错误,f是一个无效的八进制常数,这意味着
0f!=15
因为
0f
是一个错误。因此,在
0.x
中,
0
不被解释为八进制前缀,而是零?@Lingxi是的,八进制前缀只适用于整数文本-没有
的文本。因此,在
0.x
中,
0
不被解释为八进制前缀,而是零?@Lingxi yes,八进制前缀仅适用于整数文本-不带
的文本。