零、C语言中float类型变量定义的诡异性
在C语言中,float类型的定义比较特殊,特别是对于小数点左右侧数字的定义看起来也比较诡异:例如这种".005","10."等类型,问题是这种节省一个数字0,让浮点数看起来非常诡异的意义在哪里?不是不允许这种奇形怪状的定义,让浮点数看起来更加规范它不香吗?
最近在处理大量浮点数的时候发现这种定义的一个很好的应用,才发现允许这种定义可能是真香。
一、C语言中float类型变量的定义
floating-constant:
decimal-floating-constant
decimal-floating-constant:
fractional-constant exponent-part(opt) floating-suffix(opt)
digit-sequence exponent-part floating-suffix(opt)
fractional-constant:
digit-sequence(opt) . digit-sequence
digit-sequence .
exponent-part:
e sign(opt) digit-sequence
E sign(opt) digit-sequence
sign: one of
+ -
digit-sequence:
digit
digit-sequence digit
floating-suffix: one of
f l F L
这意味这"0."、".0"、"0.0"都是合法浮点数&#