Flutter/Dart - 将双精度格式格式化为带有千位分隔符和小数点后数字的字符串

Flutter/Dart - Format double to String with thousand separators AND digits after decimal point

我正在尝试从 double 变量获得格式化字符串,它将包含千位分隔符 (",") 并且始终包含小数点后的 2 位数字(即使它为零)。

我已经成功地分别实现了它们,但无法将它们组合在一起实现。

我想要实现的目标示例:

100 => "100.00"
100.5 => "100.50"
1000 = "1,000.00"
1000.5 = > "1,000.50"
1000000 => "1,000,000.00"
1000000.53 => 1,000,000.53
etc...

我尝试使用以下方法实现此目的:

NumberFormat.decimalPattern('en').format(
    double.parse(
        myDoubleVar.toStringAsFixed(2),
    ),
);

但如果小数点为零,它不会给出我的小数点。

有谁知道我怎样才能做到这一点?

谢谢

这里我是这样用的

void main() {
  
  num balance = 120000;
    print("$${balance.toStringAsFixed(2).replaceAllMapped(RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), (Match m) => "${m[1]},") }");
}

试试这个

double amount = 1000000;
NumberFormat numberFormat = NumberFormat("#,##0.00", "en_US");

print('${(numberFormat.format(amount))}');

输出: 1,000,000.00