Lui*_*ese 5 java floating-point
使用"0"(零)作为整数文字中的前缀会将其基数更改为八进制.这就是为什么
System.out.println(010);
Run Code Online (Sandbox Code Playgroud)
将打印8.但使用"F"作为后缀
System.out.println(010F);
Run Code Online (Sandbox Code Playgroud)
将使它浮动失去八进制基数(返回到十进制)并将打印10.0.
有什么区别010F和10F?使用浮动时,"0"前缀是否有任何意义?
从Java语言规范,浮点文字
FloatingPointLiteral:
- DecimalFloatingPointLiteral
- HexadecimalFloatingPointLiteral
DecimalFloatingPointLiteral:
- 数字.[数字] [ExponentPart] [FloatTypeSuffix]
- .数字[ExponentPart] [FloatTypeSuffix]
- Digits ExponentPart [FloatTypeSuffix]
- 数字[ExponentPart] FloatTypeSuffix
哪里 Digits
数字:
- 数字
- 数字 [DigitsAndUnderscores] 数字
数字:
- 0
- NonZeroDigit
DigitsAndUnderscores:
- DigitOrUnderscore {DigitOrUnderscore}
DigitOrUnderscore:
- 数字
- _
强调:
- _ {_}
您可以拥有任意数量的0浮点文字前导.
我在JLS中找不到任何解释为什么允许这样做的东西,但我可以想象它简化了解析.
| 归档时间: |
|
| 查看次数: |
577 次 |
| 最近记录: |