> Half up: " + bd1.setS-6ren">
gpt4 book ai didi

java - 为什么Java的RoundingMode HALF_DOWN将1.245舍入到1.25?

转载 作者:行者123 更新时间:2023-12-02 12:26:35 25 4
gpt4 key购买 nike

BigDecimal bd1 = new BigDecimal(1.245);

System.out.println(">> Half up: "
+ bd1.setScale(2, BigDecimal.ROUND_HALF_UP));
System.out.println(">> Half down: "
+ bd1.setScale(2, BigDecimal.ROUND_HALF_DOWN));

结果:

Half up: 1.25

Half down: 1.25

最佳答案

它是构造函数中初始 double 的结果。如果你这样做

BigDecimal bd1 = new BigDecimal("1.245");

(即带引号)它将按预期工作。

double 值1.245无法准确表示,它实际上是1.24500000000000010658141036401502788066864013671875,因此对于实际“向下”舍入来说太大了。

关于java - 为什么Java的RoundingMode HALF_DOWN将1.245舍入到1.25?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28209749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com