在 Java 中将十六进制双精度/浮点数转换为十进制双精度/浮点数



我已经搜索了一个不错的数量,但没有关于转换十六进制字符串(不是整数)的答案,例如 0x11.11 或 0x1p3在 Java 中转换为十进制形式(浮点数或双精度),而无需手动操作。有什么答案吗?

Double.valueOf()支持从String进行这种转换:

System.out.println(Double.valueOf("0x0.1p0"));
System.out.println(Double.valueOf("0x11.11p0"));
System.out.println(Double.valueOf("0x1p3"));

输出:

0.0625
17.06640625
8

另外值得一提的是,1.5 添加了对这些文字的支持:

double d = 0x1p3;

最新更新