小编典典

具有特定数字的浮点精度

java

以下值给我错误的精度。仅使用特定数字可以观察到它。这可能是一个浮动表示问题,但想知道具体原因。

String m = "154572.49"; //"154,572.49";
Float f = Float.parseFloat(m);
System.out.println(f);

正在打印的输出154572.48代替154572.49


阅读 231

收藏
2020-11-30

共1个答案

小编典典

如果希望十进制数字与在Java中输入的数字完全一样,请使用BigDecimal而不是float。

浮点数对于十进制而言本质上是不准确的,因为许多以十进制结尾的数字(例如0.1)都是以二进制形式重复出现的数字,并且浮点数以二进制表示形式存储。

2020-11-30