gpt4 book ai didi

java - 意外的 BigDecimal 结果。 1 除以 3 结果为 1。不确定为什么

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

Possible Duplicate:
Addition for BigDecimal

我觉得我错过了一些明显的东西,但无法弄清楚它是什么。我正在尝试使用 BigDecimal获取两个数字相除的小数部分。一个非常简单的情况,1.00 除以 3.00 应该是 0.(3) 重复。然而,我一直得到 1.00 的结果。

BigDecimal num = new BigDecimal(1.00).setScale(2);
BigDecimal divisor = new BigDecimal(3.00).setScale(2);

num.divide(divisor, BigDecimal.ROUND_HALF_UP);

System.out.print(num);

我的结果是 1.00,但我不明白为什么?

最佳答案

num.divide 的结果被忽略。您需要将其设置回变量

    BigDecimal num = new BigDecimal(1.00).setScale(2);
BigDecimal divisor = new BigDecimal(3.00).setScale(2);

BigDecimal result = num.divide(divisor, BigDecimal.ROUND_HALF_UP);

System.out.print(result);

这会打印0.33

关于java - 意外的 BigDecimal 结果。 1 除以 3 结果为 1。不确定为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14202246/

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