-1

我正在尝试将来自设备的数据的十六进制字符串转换为浮点数:

LCD显示中的设备输出,

0x00ac对应的浮点值为5.06

计算该值的方法是:

final byte[] temp = new byte[1];
temp[0] = ba[0];
float fff = hexToFloat(bytesToHex(temp)).floatValue();
final float ff = ( fff / 42) * 1000;
String floatString = Float.toString(ff);

但是 floatString 输出字符串包含“E-”符号。我需要删除它。此外,ff 的值似乎与设备在 LCD 中输出的值略有不同。

4

1 回答 1

3

我看不出怎么0x00ac能等于 5.06,但这里是如何用 BigDecimals 摆脱科学记数法:

BigDecimal num = new BigDecimal(fltInput);
String numWithNoExponents = num.toPlainString()
于 2013-03-10T13:00:52.623 回答