2014-02-05 3 views

답변

3

예, 특정 상황에서는 음수로 스케일을 설정하는 것이 좋습니다. 즉,이 숫자는 가장 가까운 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+3double1090.0 동일하다.

수량에 대한 과학적 측정 값이 정상적으로 숫자를 표시하는 데 필요한 총 자릿수보다 적을 때 유용합니다. 그러한 수의 정밀도는 수의 크기보다 작습니다.

이 값이 5 유효 숫자 인 경우 태양에서 지구까지의 거리가 9천2백96만마일로 주어지고, 경우

, 그 숫자는

9.2960E+7 

인쇄

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

에 해당 가장 가까운 1,000에 반올림.

+0

Fwiw, 1.09e + 2는 1090이 아니라 109입니다. –

+0

@RudyVelthuis Thanks; 나는 그 값을 교정하기위한 나의 대답과 다른 사소한 설명을 편집했다. – rgettman