안녕하세요?
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
반응형
'개발일지 > Flutter' 카테고리의 다른 글
flutter - fvm 적용하기 (Futter Version Management) (2) | 2021.03.08 |
---|---|
flutter - desktop app 빌드하는 방법. (1) | 2021.02.28 |
Flutter - [dartdoc] API 자동 문서화 (0) | 2021.02.19 |
flutter에서 쉽게 다국어 처리 - 현지화하기 - localization (0) | 2021.02.16 |
Flutter - Plugin project :firebase_core_web not found (0) | 2021.02.12 |