避免截断尝试解析字符串以在 Java Backingbean 中浮动

Avoid truncate trying to parse string to float in Java Backingbean

我正在尝试使用像这样的部分代码

来解析像这样的字符串值 "2123123.12"
String stringAmount = "2123123.12";
float amount = Float.parseFloat(stringAmount);

但是当我看到值有下一个时:

2123123.0

有什么想法。

提前致谢。

Java中,float只能存储32个bit个数。它将数字存储为 1 bit 作为符号 (-/+),8 bits 作为指数,23 bits 作为分数。

现在,查看您的号码并打印小数部分,

System.out.println(Integer.toBinaryString(2123123));

结果为 23 bit,这意味着 float 没有足够的位来存储小数部分,因此它会截断数字。

要存储整数,需要使用double,即Java中的64bit,例如:

String stringAmount = "2123123.12";
double amount = Double.parseDouble(stringAmount);
System.out.println(amount);