더북(TheBook)

039.1 포매팅

기본적으로 수는 RoundingMode.HALF_EVEN으로 포매팅된다. 하지만 NumberFormat.setRoundingMode()를 사용해 반올림 모드를 명시적으로 설정할 수도 있다.

다음과 같이 이러한 정보를 NumberFormatters라는 유틸리티 클래스로 모아 넣는다.

public static String forLocale(Locale locale, double number) {
  return format(locale, Style.SHORT, null, number);
}

public static String forLocaleStyle(
  Locale locale, Style style, double number) {

  return format(locale, style, null, number);
}

public static String forLocaleStyleRound(
  Locale locale, Style style, RoundingMode mode, double number) {

  return format(locale, style, mode, number);
}

private static String format(
  Locale locale, Style style, RoundingMode mode, double number) {

  if (locale == null || style == null) {
    return String.valueOf(number); // 또는 기본 포맷을 사용한다
  }

  NumberFormat nf = NumberFormat.getCompactNumberInstance(locale, style);

  if (mode != null) {
    nf.setRoundingMode(mode);
  }

  return nf.format(number);
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.