gpt4 book ai didi

java - 为什么 BigDecimal 的值与构造函数中提供给它的值不匹配?

转载 作者:行者123 更新时间:2023-11-29 03:02:02 24 4
gpt4 key购买 nike

我在 Java 中有一个 BigDecimal。我知道这是一个在大多数情况下不会使用的值。执行此代码时,我的命令控制台打印出以下内容; 1789984896489654735783157941777104561834014693972171030528。这不是完整的 BigDecimal。我的问题是为什么它不打印完整的数字?

BigDecimal bD = new BigDecimal(1789984896489654689748964897484894895484896546845987465874.54644685486451845867467986798679864598764589459468746587946578945);
System.out.println(bD);

最佳答案

问题是您正在使用的构造函数:BigDecimal(double)。大长串数字被转换为 Java 的 double,对于您尝试放入 BigDecimal 的内容,它的精度几乎不够。

您需要改用 BigDecimal(String) 构造函数:

BigDecimal bD = new BigDecimal("1789984896489654689748964897484894895484896546845987465874.54644685486451845867467986798679864598764589459468746587946578945");
// ^ ^

Demo.

关于java - 为什么 BigDecimal 的值与构造函数中提供给它的值不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34227245/

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