【问题标题】:BigDecimal Substract with negative result [duplicate]BigDecimal 减法,结果为负[重复]
【发布时间】:2014-07-25 11:06:11
【问题描述】:

我有这个代码:

public BigDecimal getDifference() {
    BigDecimal total = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_DOWN);

    for (Order order : orders) {
        BigDecimal originalCost= order.getOriginalValue();

        BigDecimal nweCost= order.getNewValue();

        BigDecimal diff = newValue.substract(originalValue);

        total.add(diff);
    }

    return total;
}

我正在使用 originalCost > newCost 进行测试,但总成本始终为 0。我在 total.add(diff) 行拍摄了调试器的快照:

有人知道我做错了什么吗?

谢谢。

【问题讨论】:

    标签: java bigdecimal


    【解决方案1】:
    total = total.add(diff);
    

    不可变类型,如 String。

    某些 IDE 会发出警告。

    【讨论】:

    • 谢谢!对不起,我虽然问题出在减法上,所以我没有正确搜索。
    猜你喜欢
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多