gpt4 book ai didi

Java BigDecimal 到 String

转载 作者:行者123 更新时间:2023-12-04 14:46:48 25 4
gpt4 key购买 nike

我有下面一段代码,在将 BigDecimal 转换为 String 时,我的精度丢失了。非常感谢任何帮助。
预期结果:95.10000000000000%
实际结果:95.09999999999999%

public static String getAsString(Object value) 
{
if (value == null)
return null;

if (value.toString().length() == 0)
return null;

BigDecimal inputVal = new BigDecimal(value.toString());

if (inputVal == new BigDecimal(0))
return "";

NumberFormat numberFormat = NumberFormat.getPercentInstance(Locale.US);
numberFormat.setMinimumFractionDigits(14);
numberFormat.setMaximumFractionDigits(14);
if (numberFormat instanceof DecimalFormat) {
DecimalFormat df = (DecimalFormat) numberFormat;
df.setNegativePrefix("(");
df.setNegativeSuffix("%)");
}

String num = null;
num = numberFormat.format(new BigDecimal(95.1).divide(new BigDecimal(100)));

return num;
}

最佳答案

随着这个实例的创建

new BigDecimal(95.1)

你是losing some precision .您实际上可以做的是使用字符串构造函数:

new BigDecimal("95.1")

另一种方法是使用工厂方法:

BigDecimal.valueOf(95.1)
BigDecimal.valueOf(100)

在内部,它们使用这些数字的字符串表示来创建一个 BigDecimal 对象。

关于Java BigDecimal 到 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46643122/

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