首页 > 解决方案 > Flutter NumberFormat 格式,无需更改语言

问题描述

我正在尝试根据所选货币格式化数字而不进行翻译。例如

Text(NumberFormat.simpleCurrency(
    locale: 'bn_BN',
).format(123456.78));

输出

১,২৩,৪৫৬.৭৮৳

我想要格式,但不是语言环境。我如何让它看起来像这样 -

1,23,456.78 BDT or 1,23,456.78 ৳

有没有办法做到这一点

PS 我只需要千位分隔符或分组作为货币默认值,例如 BDT 分组是 XX,XX,XXX 千位后的第一个逗号,然后每 2 位数字后的逗号。这是 NumberFormat 自己做的事情,但不幸的是,只有当你传入语言环境时。

标签: flutterlocalecurrencynumber-formatting

解决方案


您可以在代码中的某处定义自定义 NumberFormatter(假设您将在应用程序的不同部分使用它)并使用它来格式化()数字:

final myFormatter = new NumberFormat.currency(
      name: 'BDT',
      decimalDigits: 2,
      customPattern: '#,##,##0.00 \u00A4',
    );
Text(myFormatter.format(12345678.01)),

这将产生:1,23,45,678.01 BDT


推荐阅读