gpt4 book ai didi

java - java中32位十六进制字符串到 float

转载 作者:行者123 更新时间:2023-12-01 23:56:51 25 4
gpt4 key购买 nike

我有以下字符串“0x4B196DAF”。我想要得到类似“10055087.000000”的输出。

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

long l = Long.parseLong(hexval, 16);
return Float.intBitsToFloat(l.intValue());

我也尝试过

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

或者,如果您愿意,可以尝试使用 NumberFormat,它允许您设置最小小数位数:

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

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

输出....

10055087.000000

希望对您有所帮助。

关于java - java中32位十六进制字符串到 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15464618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com