0
스케일을 이와 같이 음수로 설정하는 것이 이치에 맞습니까?BigDecimal로 스케일을 음수로 설정
BigDecimal result;
.
.
.
result = result.setScale(-1, RoundingMode.HALF_UP)
어떻게하면됩니까?
스케일을 이와 같이 음수로 설정하는 것이 이치에 맞습니까?BigDecimal로 스케일을 음수로 설정
BigDecimal result;
.
.
.
result = result.setScale(-1, RoundingMode.HALF_UP)
어떻게하면됩니까?
예, 특정 상황에서는 음수로 스케일을 설정하는 것이 좋습니다. 즉,이 숫자는 가장 가까운 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
동일하다.
수량에 대한 과학적 측정 값이 정상적으로 숫자를 표시하는 데 필요한 총 자릿수보다 적을 때 유용합니다. 그러한 수의 정밀도는 수의 크기보다 작습니다.
이 값이 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에 반올림.
Fwiw, 1.09e + 2는 1090이 아니라 109입니다. –
@RudyVelthuis Thanks; 나는 그 값을 교정하기위한 나의 대답과 다른 사소한 설명을 편집했다. – rgettman