C 012e2是八进制还是浮点数?
这在C语言中应该如何解析C 012e2是八进制还是浮点数?,c,type-conversion,decimal,octal,C,Type Conversion,Decimal,Octal,这在C语言中应该如何解析 1000 (如果八进制012*10^2) 或 (如果整数为十进制)?012e2是类型为double的文本,其值与1200.0相同 浮动常量可以是十进制或十六进制浮动常量。十进制浮动常量可以以任何数字开头,包括0 (C99.6.4.4.2浮动常数) 012e2是类型为double的文本,其值与1200.0相同 浮动常量可以是十进制或十六进制浮动常量。十进制浮动常量可以以任何数字开头,包括0 (C99.6.4.4.2浮动常数) 带指数的常数始终是浮点 C中没有八进制浮点
1000
(如果八进制012
*10^2)
或
(如果整数为十进制)?
012e2
是类型为double
的文本,其值与1200.0
相同
浮动常量可以是十进制或十六进制浮动常量。十进制浮动常量可以以任何数字开头,包括0
(C99.6.4.4.2浮动常数)
012e2
是类型为double
的文本,其值与1200.0
相同
浮动常量可以是十进制或十六进制浮动常量。十进制浮动常量可以以任何数字开头,包括0
(C99.6.4.4.2浮动常数)
带指数的常数始终是浮点 C中没有八进制浮点常量(有十六进制浮点常量,但这不是其中之一) 因此
012e2
对于编写1200.0
来说是一种不必要的混乱方式
(除非故意混淆,否则我想不出这样写的好理由。)带指数的常数总是浮点 C中没有八进制浮点常量(有十六进制浮点常量,但这不是其中之一) 因此
012e2
对于编写1200.0
来说是一种不必要的混乱方式
(除非故意混淆,否则我想不出这样写的好理由。)我不知道编译器是如何解析它的,但我解析它“有人在找麻烦”。那个丑陋的常量出现在哪里?顺便说一句,“八进制或浮点”没有多大意义。八进制是一种文本表示
float
是一种类型。我不知道编译器如何解析它,但我解析它“有人在找麻烦”。那个丑陋的常量出现在哪里?顺便说一句,“八进制或浮点”没有多大意义。八度是文本的再现float
是一种类型。事实数字以0开头并不意味着是八进制数?@Jack:仅适用于整数常量(作为字符常量和字符串文本语法的一部分).@Jack no floating constants可以是十进制的,也可以是十六进制的。@Jack no floating constants可以是十进制的,也可以是十六进制的。@Jack no floating constants可以是十进制的,也可以是十六进制的。@Jack no floating constants可以是十进制的。。。可以由代码生成例程创建,并以这种方式格式化以与某些模板保持一致。(可能是在20世纪70年代或80年代,对某些人来说,混淆是一种运动)@Ryker:也许有一个要求是精确的3个有效数字,并且没有小数点——尽管120e1
也一样好。(是的,我知道特定的标记在评论中不起作用。)关于:我想不出什么好的理由。。。可以由代码生成例程创建,并以这种方式格式化以与某些模板保持一致。(可能是在20世纪70年代或80年代,对某些人来说,混淆是一种运动)@Ryker:也许有一个要求是精确的3个有效数字,并且没有小数点——尽管120e1
也一样好。(是的,我知道特定的标记在注释中不起作用。)
1200
decimal-floating-constant:
fractional-constant exponent-partopt floating-suffixopt
digit-sequence exponent-part floating-suffixopt
digit-sequence:
digit
digit-sequence digit