자바에서 n개의 소수점 자릿수로 반올림 할때


String의 format을 활용할때보면 5이상이면 항상 반올림하잖아요.

String.format("%.5g%n", 0.912385);

이러면

0.91239

이렇게 잘 반올림이 되는데 예를 들어

String.format("%.5g%n", 0.912300);

이경우에서 저는 뒤에 0이면 0이 안나왔으면 좋겠는데

0.91230

이렇게 되더라고요 그래서 다른 방법으로 DecimalFormatter를 찾아봤는데 이 방법은 뒤에 0을 없애주긴하는데

DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);

이 경우에 출력결과를 보면 반올림이 안되고 0.91238 이렇게 나오더라고요....

제가 원하는건

0.912385 -> 0.91239
0.912300 -> 0.9123

이런건데 어떻게 할까요

  • 2016년 01월 06일에 작성됨

조회수 505


1 답변


좋아요
0
싫어요
채택취소하기

setRoundingMode이걸 사용해서 RoundingMode를 수정하세요. 반올림이든 내림이든 올림이든 님이 다 설정할 수 있어요.

DecimalFormat df = new DecimalFormat("#.####");
df.setRoundingMode(RoundingMode.CEILING);
for (Number n : Arrays.asList(12, 123.12345, 0.23, 0.1, 2341234.212431324)) {
    Double d = n.doubleValue();
    System.out.println(df.format(d));
}


12
123.1235
0.23
0.1
12341234.2125
  • 2016년 01월 06일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close