Flutter/Dart -将双精度格式转换为带有千位分隔符的字符串,并在小数点后加上数字



我试图从一个双变量中获得一个格式化的字符串,它将包含数千个分隔符(",")AND将总是在小数点后包含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),
),
);

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

有人知道我怎么才能做到这一点吗?

谢谢

试试这个

double amount = 1000000;
NumberFormat numberFormat = NumberFormat("#,##0.00", "en_US");
print('${(numberFormat.format(amount))}');

输出:1000000

这里我是这样使用的。

void main() {

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