자바에서 n개의 소수점 자릿수로 반올림 할때
조회수 6902회
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
이런건데 어떻게 할까요
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
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
댓글 입력