使用BigDecimal将比例设置为负数

时间:2014-02-05 23:08:35

标签: java bigdecimal

将比例设置为这样的负数是否有意义?

BigDecimal result;
    .
    .
    .
result = result.setScale(-1, RoundingMode.HALF_UP)

如果你这样做会怎么样?

1 个答案:

答案 0 :(得分:4)

是的,在某些情况下将比例设置为负数是有意义的。这只是意味着该数字四舍五入到10-scale的数字,或者在这种情况下仅为10

BigDecimal bd = new BigDecimal(1094);
bd = bd.setScale(-1, RoundingMode.HALF_UP);
System.out.println(bd);
System.out.println(bd.doubleValue());

打印

1.09E+3
1090.0

1.09E+3相当于double1090.0

当数量的科学测量数字的位数低于正常表示数字所需的总位数时,这非常有用。这个数字的精度小于数字的大小。

如果地球与太阳的距离为92,960,000英里,如果此值仅为5位有效数字,则相当于

BigDecimal bd = new BigDecimal(92960000.0);
bd = bd.setScale(-3, RoundingMode.HALF_UP);// 3 insignificant/imprecise "0" digits
System.out.println(bd);

打印

9.2960E+7

该数字四舍五入到最接近的1,000。