0xp0打印0.0(hex浮点数字)
我只是想知道为什么这个编译? 它是什么意思,因为它编译?
System.out.println(0xp0); // p?
OUTPUT:
0.0
这是一个浮点hex文字。
对于hex浮点文字,至少需要一个数字(在整数或小数部分中),并且指数是必需的,浮点类型后缀是可选的。 指数由ASCII字母p或P表示,后跟可选的有符号整数。
请参阅此处的规范。
JLS解释说:
HexadecimalFloatingPointLiteral: HexSignificand BinaryExponent FloatTypeSuffixopt HexSignificand: HexNumeral HexNumeral . 0 x HexDigitsopt . HexDigits 0 X HexDigitsopt . HexDigits BinaryExponent: BinaryExponentIndicator SignedInteger BinaryExponentIndicator:one of p P
基于以上所述,我希望在p
之前有一个强制的.HexDigit
。
仅供参考,以下是如何手动将以下内容转换为十进制数字:
double hfpl = 0x1e.18p4; System.out.println(hfpl); // 481.5
- BigDecimal Euler的数字计算来模拟Math.exp(double a)
- 权限被拒绝导致“安装因APK文件无效而失败”
- Google Marketplace App / OAuth2 – 以编程方式委派全域授权
- 在滚动RecyclerView时更改了Cardview的数据
- 简短的int自动推广
- 如何从HashMap创建查询?
- 获取以下exceptionorg.apache.bcel.verifier.exc.AssertionViolatedException
- 如何在BottomSheetDialogFragment中使用2 recyclerView
- java:如何将此字符串转换为ArrayList?