gpt4 book ai didi

java - 将 Double 转换为 Bigdecimal 时值缩小

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

我的问题是,当我将 Double 转换为 BigDecimal 时,我失去了原始值。我的输入要求类似于 Double val = 10435383974769502920d 并希望转换为 10435.383974769502920 但低于输出。我尝试过使用 Double BigDecimal..但没有成功

Double val = 10435383974769502920d;
System.out.println(BigDecimal.valueOf(val).movePointLeft(15));

output : 10435.383974769502

最佳答案

Double val = 10435383974769502920d;

double 根本无法容纳那么多数字。 double 的精度限制为 ~15 位小数。丢失额外数字的不是 BigDecimal;而是 BigDecimal。这是您开始时的双倍。

>>> System.out.printf("%f\n", 10435383974769502920d);
10435383974769502000.000000

使用字符串构造 BigDecimal 以避免丢失精度。

String val = "10435383974769502920";
System.out.println(new BigDecimal(val).movePointLeft(15));

关于java - 将 Double 转换为 Bigdecimal 时值缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50978523/

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