double a = 100.22516; double b = Math.round(a*100d) / 100d; System.out.println(b);//결과: 100.23
원리는 차근차근 따라해 보면 쉽다. 일반 round() 메서드는 소수첫째자리에서 반올림 되기때문에 내가 반올림 하고자하는 자리수가 첫번째 소수점자리가 되도록 10 제곱을 곱해준다. 즉, 소수 2번째 자리까지 구하기 때문에 a에 10^2 하게되면 10022.516이 된다. 여기에서 반올림 한후 다시 나눈만큼 곱해주면 원래 소수 자리로 복원되게 된다.
다른 방법으로는 서식출력이 가능한 표준출력 메서드를 이용한 방법이다. double a = 100.22516; System.out.printf("%.2f",a);//결과 100.23