Java中十六进制双精度浮点转换为十进制双精度浮点

Java中十六进制双精度浮点转换为十进制双精度浮点,java,floating-point,hex,Java,Floating Point,Hex,我已经搜索了一个不错的数量,但没有关于转换十六进制字符串(这不是一个整数)的答案,例如 0x11.11或0x1p3 将其转换为Java中的十进制形式(浮点或双精度),而无需手动执行。有任何答案吗?Double.valueOf()支持从字符串进行转换: System.out.println(Double.valueOf("0x0.1p0")); System.out.println(Double.valueOf("0x11.11p0")); System.out.println(Double.va

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

Double.valueOf()
支持从
字符串进行转换:

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

0.0625
17.06640625
八,

还值得一提的是,1.5添加了对这些文本的支持:

double d = 0x1p3;

您是否以这种方式将它们输入源代码,如
double d=0x11.11
或者你要用什么格式获取它们?你需要用什么格式?对不起,我应该在OP中澄清一下,我在as Strings中读取十六进制值。你是否尝试过
Double.parseDouble(String)
是否支持这种格式?可能重复@JimGarrison这篇文章借鉴了相同的概念,但是我仍然不确定如何处理十六进制形式的实际浮点值,比如从那篇文章的示例和阅读intBitsToFloat文档中得到的0x11.11。是的,我认为这可能是问题所在(即使
0
,也需要
p
),但我不想假设。很高兴我能帮忙。