gpt4 book ai didi

java - java BigDecimal 存储垃圾值的问题

转载 作者:行者123 更新时间:2023-12-03 23:27:45 26 4
gpt4 key购买 nike

    BigDecimal b = new BigDecimal(0.05);
System.out.println(b);

输出:

    0.05000000000000000277555756156289135105907917022705078125

如何处理?

最佳答案

这个数字是完全正确的。这是 double 的精确值 0.05。这是因为 double 无法准确表示所有值,而必须为您提供最接近的可表示值。当您打印该值时,它假定您要对其进行舍入,并隐藏表示错误。 BigDecimal 只是向您展示了真正的值(value)。

如果您想将 double 转换为 BigDecimal 并按照您期望的方式使用

BigDecimal b = BigDecimal.valueOf(0.05);

另一个解决方案是不使用 BigDecimal。如果您使用 double 并进行适当的舍入,您将得到相同的答案,代码更少,代码速度更快。

关于java - java BigDecimal 存储垃圾值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24539889/

26 4 0
文章推荐: php - 我应该使用 还是 <iframe> 来加载视频?