gpt4 book ai didi

java - 如何使用 Java 的 BigDecimal 正确计算?

转载 作者:行者123 更新时间:2023-12-04 00:53:29 25 4
gpt4 key购买 nike

<分区>

据我了解,BigDecimal 用于正确处理具有固定小数位的数字(即金钱)。这是我写的一个小程序:

import java.math.*;

public class Main {
public static void main(String[] args) {
BigDecimal a = new BigDecimal(11.22, new MathContext(2, RoundingMode.HALF_UP));
System.out.println("a: " + a);
BigDecimal b = a.add(new BigDecimal(0.04));
System.out.println("b: " + b);
}
}

我希望看到:

a: 11.22
b: 11.26

但是我得到的是:

a: 11
b: 11.040000000000000000832667268468867405317723751068115234375

我将 a 设置为有两位小数,但它都不打印它们,甚至忘记它们并四舍五入为纯 int。为什么? b 应该加 0.04 并且从 a 知道也有两位小数。这至少是我所期望的。

如何使用 BigDecimal edit: 将两个 double 值作为输入和已知的小数位数正确解决这个问题? [即,因为除了这两个 double 之外,API 没有给我任何其他东西。](我知道还有其他方法可以可靠地计算金钱(从使用 int 以美分计算开始) ,但这超出了我的问题范围。)

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