java中浮点数的32位十六进制字符串

java中浮点数的32位十六进制字符串,java,floating-point,Java,Floating Point,我有以下字符串“0x4B196DAF”。我想得到像“10055087.000000”这样的输出 我的代码显示了一个奇怪的输出,如“1.0055087E7” 我也试过了 long l = Long.parseLong(hexval, 16); return Double.longBitsToDouble(l.longValue()); 但没有任何帮助。我已经检查了几个网站,显示正确的输出。我无法准确地找出问题所在。如果您想将其打印为字符串,请调用某处的toString()。达到极限后,它将给出一

我有以下字符串“
0x4B196DAF
”。我想得到像“
10055087.000000
”这样的输出

我的代码显示了一个奇怪的输出,如“
1.0055087E7

我也试过了

long l = Long.parseLong(hexval, 16);
return Double.longBitsToDouble(l.longValue());

但没有任何帮助。我已经检查了几个网站,显示正确的输出。我无法准确地找出问题所在。

如果您想将其打印为字符串,请调用某处的toString()。达到极限后,它将给出一个科学的符号

您可以尝试使用:

int hex = 0x4B196DAF;
float f = Float.intBitsToFloat(hex);
System.out.println(f);
System.out.printf("%f", f);
输出

1.0055087E7
10055087.00000010055087
10055087.000000
或者,如果您愿意,可以尝试使用NumberFormat,这将允许您设置最小分数位数:

NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(false);
nf.setMinimumFractionDigits(6);

System.out.println(nf.format(f));
输出

1.0055087E7
10055087.00000010055087
10055087.000000

我希望它能有所帮助。

我想你想把它打印成字符串,调用某处的toString()。达到极限后,它将给出一个科学的符号

您可以尝试使用:

int hex = 0x4B196DAF;
float f = Float.intBitsToFloat(hex);
System.out.println(f);
System.out.printf("%f", f);
输出

1.0055087E7
10055087.00000010055087
10055087.000000
或者,如果您愿意,可以尝试使用NumberFormat,这将允许您设置最小分数位数:

NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(false);
nf.setMinimumFractionDigits(6);

System.out.println(nf.format(f));
输出

1.0055087E7
10055087.00000010055087
10055087.000000

我希望这会有所帮助。

也许看看1.0055087E7在另一个符号中就是10055087.000000。您希望了解java打印数字的格式选项。也许有用。也许看看1.0055087E7在另一个符号中只是10055087.000000。您希望了解java打印数字的格式选项。可能有用。