当存储为单精度浮点数时,数字 0.1 的值为 0.100000001490116119384765625(来源:https ://www.h-schmidt.net/FloatConverter/IEEE754.html ),但它在 Java 中打印为 0.1。我认为这是因为 Java 将浮点数的小数位数限制为七位。如何增加显示的小数位数?
2 回答

MYYA
TA贡献1868条经验 获得超4个赞
您可以使用 BigDecimal 显示所有数字。
System.out.println(new BigDecimal(0.1f));
System.out.println(new BigDecimal(0.1));
这显示了精确的表示。float最多显示 24 位,double最多显示 53 位,因为这是尾数中的位数。
0.100000001490116119384765625
0.1000000000000000055511151231257827021181583404541015625
这避免了需要计算要显示多少位数。
System.out.println(new BigDecimal(0.125f));
System.out.println(new BigDecimal(0.125));
印刷
0.125
0.125
因为这个值没有表示错误,因为它是 2^-3
添加回答
举报
0/150
提交
取消