gpt4 book ai didi

java - BigDecimal 初始化后的 Stange 值

转载 作者:行者123 更新时间:2023-11-29 06:31:54 25 4
gpt4 key购买 nike

我正在尝试以愚蠢的方式初始化 HashMap:

HashMap<BigDecimal,BigDecimal> myMap = new HashMap<>();
myMap .put(new BigDecimal(1.7), new BigDecimal(1.5));
myMap .put(new BigDecimal(3.3), new BigDecimal(3));
myMap .put(new BigDecimal(5), new BigDecimal(4.5));
myMap .put(new BigDecimal(6.6), new BigDecimal(6));
myMap .put(new BigDecimal(11), new BigDecimal(10));
myMap .put(new BigDecimal(16.5), new BigDecimal(15));

但是上面插入的值在下面的 wang 中发生了变化:

1.7 becomes 1.6999999999999999555910790149937383830547332763671875
3.3 becomes 3.29999999999999982236431605997495353221893310546875
6.6 becomes 6.5999999999999996447286321199499070644378662109375

为什么会这样?

最佳答案

使用 BigDecimal.valueOf(double) 静态方法:这将从您需要的 double 的字符串表示形式初始化 BigDecimal

关于java - BigDecimal 初始化后的 Stange 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31853423/

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