我正在使用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;
}
Run Code Online (Sandbox Code Playgroud)
}
我用来创建大十进制的所有字符串的比例为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(); // use a locale here
String formated = df.format(myUnformatedBigDecimal);
| 归档时间: |
|
| 查看次数: |
4483 次 |
| 最近记录: |