gpt4 book ai didi

Java 大十进制问题

转载 作者:行者123 更新时间:2023-11-30 05:56:46 25 4
gpt4 key购买 nike

我使用java大十进制如下:

class test bigDecimal{

private BigDecimal decimalResult;


public boolean iterate(String value) {
if (value == null) {
return true;
}

System.out.println("value is: " + value);

BigDecimal temp = new BigDecimal(value);

System.out.println("temp val is: " + temp);
if (decimalResult == null) {
decimalResult = temp;
} else {
decimalResult = decimalResult.add(temp);
}

return true;
}

}

我用来创建大十进制的所有字符串的小数位数均为 6。例如:123456.678000、456789.567890

但是如果我给出一个大的字符串列表作为输入并检查总和,我会得到小数点后 8 位数字的输出。例如。类似:2939166.38847228。

我想知道为什么 BigDecimal 会改变这个比例?我所有输入的比例均为 6。

任何意见都将受到赞赏。-谢谢

最佳答案

请阅读 BigDecimal 的 javadoc: http://download.oracle.com/javase/6/docs/api/java/math/BigDecimal.html在内部,所有 BigDecimal 都会转换为某种内部格式。

如果您想获得特定的格式,您必须将其称为适当的。例如,您可以将 scaleByPowerOfTen(int n) 与 n=6 一起使用

哦,顺便说一下,永远不要使用 new BigDecimal,而是使用 BigDecimal.valueOf

编辑:

NumberFormat numberFormat = NumberFormat.getInstance();//此处使用区域设置格式化字符串 = df.format(myUnformatedBigDecimal);

关于Java 大十进制问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668026/

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