gpt4 book ai didi

java - 在java中将 double 字符串转换为精确字符串

转载 作者:行者123 更新时间:2023-12-01 17:07:33 25 4
gpt4 key购买 nike

我有以下双值

double d = 123456789.8210000000001;

现在我需要将其转换为

String s = "123456789.8210000000001"

完全正确。

我使用了以下代码

double d = 123456789.8210000000001d;
DecimalFormat df = new DecimalFormat();
df.setGroupingUsed(false);
df.setMaximumIntegerDigits(20);
df.setMaximumFractionDigits(20);
System.out.println(df.format(d));

但它给出了输出“123456789.821”

当我使用以下代码时

double d = 123456789.8210000000001d;
BigDecimal bd = new BigDecimal(d);
System.out.println(bd.toPlainString());

它给出123456789.82099999487400054931640625

但我需要确切的值。

注意:这里整数/小数部分的位数可以不同。

最佳答案

一旦您将值 123456789.8210000000001 存储在 double 中,您的精确表示就会因 double 的精度而丢失。

如果您想保留精确的数字,您应该使用 BigDecimalString 构造函数:

BigDecimal bd = new BigDecimal("123456789.8210000000001");

关于java - 在java中将 double 字符串转换为精确字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24776587/

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