将比例设置为这样的负数是否有意义?
BigDecimal result;
.
.
.
result = result.setScale(-1, RoundingMode.HALF_UP)
如果你这样做会怎么样?
答案 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
相当于double
值1090.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。