Flutter - NumberFormat - 숫자 세자리마다 콤마 넣기
개발일지/Flutter

Flutter - NumberFormat - 숫자 세자리마다 콤마 넣기

안녕하세요?

intl라이브러리에 있는 NumberFormat을 이용하여 숫자 포맷을 자유자재로 변경해보려고 합니다.

포맷은 ICU 포맷팅 패턴을 따른다.

  • 0 A single digit
  • # A single digit, omitted if the value is zero
  • . Decimal separator
  • - Minus sign
  • , Grouping separator
  • E Separates mantissa and expontent
  • +- Before an exponent, to say it should be prefixed with a plus sign.
  • %- In prefix or suffix, multiply by 100 and show as percentage
  • ‰ (\u2030) In prefix or suffix, multiply by 1000 and show as per mille
  • ¤ (\u00A4) Currency sign, replaced by currency name
  • ' Used to quote special characters
  • ; Used to separate the positive and negative patterns (if both present)

먼저 flutter 설정에 intl 라이브러리를 추가한다.

pubspec.yaml에 intl 추가.

# 21년 2월14일 기준 최신 버전이다.
intl: ^0.16.1

숫자 세자리마다 콤마 넣는 방법

import 'package:intl/intl.dart';

var f = NumberFormat('###,###,###,###');
print(f.format(1000000);
# ==> 1,000,000

소숫점 두자리까지 나오게 하기

import 'package:intl/intl.dart';

var f = NumberFormat("###.0#", "en_US")
print(f.format(12.345);
# ==> 12.34

로케일을 지정하지 않을 경우 기본값은 현재 로케일입니다.

만 단위로 표시하는 방법

import 'package:intl/intl.dart';

int price = 18000;
double temp = param / 10000;
var f = NumberFormat("###,###,###.#### 만원");
print(f.format(temp);
# ==> 1.8 만원

쉽게 NumberFormat.currency 사용하는 방법이 있다.

currencyPattern함수가 deprecated되었다.
currency함수를 사용하자.

import 'package:intl/intl.dart';

var f = NumberFormat.currency(locale: "ko_KR", symbol: "₩");
print(f.format(191000));
# ==> ₩191,000

참조

https://pub.dev/documentation/intl/latest/intl/NumberFormat/NumberFormat.currency.html

반응형