Flutter - 화페 & 숫자

2023. 11. 8. 09:18·Flutter
728x90

decimal 패키지

  import 'package:decimal/decimal.dart';
  import 'package:decimal/intl.dart';

  final d = Decimal.parse('12345.12345');
  print(NumberFormat.decimalPattern('ko_KR').format(DecimalIntl(d)));  // 12,345.123
  print(NumberFormat.decimalPattern('en_US').format(DecimalIntl(d)));  // 12,345.123
  • Decimal.parse() 정적 메소드로 문자열을 십진수 객체로 얻는다.
  • ko_KR, en_US 로케일 출력 모두 기본 설정은 세자리 수마다 콤마, 소숫점 셋째 자리까지 표시이다.
  • decimal 패키지가 제공하는 intl로 출력하는 것보다는 아래 intl 패키지에서 출력하는 것이 더 간편하다.

변환 메소드

  final d = Decimal.parse('12345.12345');

  print(d.toString());  // 12345.12345
  print(d.toBigInt());  // 12345
  print(d.toDouble());  // 12345.12345
  print(d.toStringAsFixed(2));  // 12345.12

세 자리수 콤마를 꼭 찍어야 할 필요가 있는 것이 아니라면 toStringAsFixed(소숫점자리수) 출력으로 충분하다.

intl 패키지로 형식화 출력

일반 숫자

import 'package:intl/intl.dart';

void main() {
    final f = NumberFormat('#,##0.0#', 'ko_KR');
    print(f.format(12345.12345));  // 12,345.12
}
  • 0: 한 자리 숫자
  • #: 한 자리 숫자, 0일 경우에는 표시 안 함
  • ,; 콤마, 보통 세 자리수마다 구분
  final d = Decimal.parse('12345.12345');
  final f = NumberFormat('#,##0.0#', 'ko_KR');
  print(f.format(d.toDouble())); // 12,345.12

화폐

  f = NumberFormat.currency(locale: "ko_KR", symbol: "₩");
  print(f.format(12345.12345));  // ₩12,345

  f = NumberFormat.currency(locale: "en_US", symbol: "\$");
  print(f.format(12345.12345));  // $12,345.12
  final d = Decimal.parse('12345.12345');
  final f = NumberFormat.currency(locale: "ko_KR", symbol: "₩");
  print(f.format(d.toDouble())); // 12,345.12

막상 한국에서는 ₩ 기호보다는 원 글자를 더 많이 쓰기 때문에 그냥 수치형식으로 바꾸고 원을 붙이는 것이 더 나을 수 있다.

728x90
LIST

'Flutter' 카테고리의 다른 글

Flutter - yaml & pubspec.yaml  (2) 2023.11.08
Flutter - abstract class  (0) 2023.11.08
Flutter - 날짜 & 시간  (0) 2023.11.08
Flutter - WebScoket  (2) 2023.11.07
Flutter - JWT  (1) 2023.11.07
'Flutter' 카테고리의 다른 글
  • Flutter - yaml & pubspec.yaml
  • Flutter - abstract class
  • Flutter - 날짜 & 시간
  • Flutter - WebScoket
Mr. Joo
Mr. Joo
  • Mr. Joo
    삽질의 시작
    Mr. Joo
  • 전체
    오늘
    어제
    • 분류 전체보기 (181) N
      • Flutter (67)
      • Android (9)
      • Swift (4)
      • React (11)
      • 인공지능 (4)
      • CS (10)
      • 개발 뉴스 (73) N
      • IT 기기 (1)
      • 알면 유용한 정보 (2)
  • 인기 글

  • 태그

    Dart 기초
    오늘의 이슈
    앱개발
    기술
    앱
    이슈
    DART
    개발 이슈
    오늘의 뉴스
    Flutter
    개발 뉴스
    기술 뉴스
    뉴스 모음
    뉴스
    앱 개발
    개발
    react
    android
    플러터
    Flutter 기초
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Mr. Joo
Flutter - 화페 & 숫자
상단으로

티스토리툴바