以下值给我错误的精度。仅使用特定数字可以观察到它。这可能是一个浮动表示问题,但想知道具体原因。
String m = "154572.49"; //"154,572.49"; Float f = Float.parseFloat(m); System.out.println(f);
正在打印的输出154572.48代替154572.49。
154572.48
154572.49
如果希望十进制数字与在Java中输入的数字完全一样,请使用BigDecimal而不是float。
浮点数对于十进制而言本质上是不准确的,因为许多以十进制结尾的数字(例如0.1)都是以二进制形式重复出现的数字,并且浮点数以二进制表示形式存储。