【问题标题】:Flutter/Dart - Format double to String with thousand separators AND digits after decimal pointFlutter/Dart - 使用千位分隔符和小数点后的数字将双精度格式格式化为字符串
【发布时间】:2023-03-26 00:29:02
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • @F.S07 你能试试我的答案吗?

标签: flutter dart flutter-dependencies number-formatting numberformatter


【解决方案1】:

这里我是这样用的。

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

【讨论】:

    【解决方案2】:

    试试这个

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

    输出: 1,000,000.00

    【讨论】:

    • 就个人而言,我在我的几个项目中都使用了它。
    猜你喜欢
    • 1970-01-01
    • 2023-01-06
    • 2020-10-16
    • 2023-04-06
    • 2016-04-03
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多