[Flutter Dart] 数字を三桁ごとにカンマ区切りで表示する

1 min読了の目安(約1000字TECH技術記事

はじめに

金額の単位を表示したい時などに使うやつです。

今回はNumberFormatを利用しました
NumberFormat class - intl library - Dart API

import

import 'package:intl/intl.dart';

3桁ごとにカンマ区切り

final formatter = NumberFormat("#,###.0");
var result = formatter.format(50101214);
print(result); // 50,101,214

3桁区切り小数点1桁まで

金額の単位を表示したい時など

final formatter = NumberFormat("#,###.0");
var value = (50101214 / 10000);
var result = formatter.format(value);
print(result+'万円'); //5,010.1万円

3桁区切り小数点2桁まで

final formatter = NumberFormat("#,###.0#");
var value = (50101214 / 10000);
var result = formatter.format(value);
print(result+'万円'); //5,010.12万円

他にも書き方等ある場合はコメントいただけると助かります。

Stringにも対応

こちらの記事を参考にさせていただきました。
https://stackoverflow.com/questions/31931257/dart-how-to-add-commas-to-a-string-number

Function mathFunc = (Match match) => '${match[1]},';
RegExp reg = RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))');
String result = '20000円'.replaceAllMapped(reg, mathFunc);
print('$result');//20,000円