1

我正在尝试从双变量中获得格式化的字符串,该变量将包括千位分隔符(“,”)并且将始终包括小数点后的 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),
    ),
);

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

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

谢谢

4

2 回答 2

2

试试这个

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

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

输出:1,000,000.00

于 2021-08-24T10:11:40.407 回答
1

这里我用过这样的。

void main() {
  
  num balance = 120000;
    print("\$${balance.toStringAsFixed(2).replaceAllMapped(RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), (Match m) => "${m[1]},") }");
}
于 2021-08-24T10:02:30.753 回答