不改变语言的 Flutter NumberFormat 格式

Flutter NumberFormat format without changing language

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

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

产出

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

我想要格式,但不想要区域设置语言。我如何让它看起来像这样 -

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

有没有办法实现这个

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

在另一个问题中查看此答案:

最后一个示例是您要与您的格式一起使用的示例 #,##,##0.00

我认为您不想提供 BN 区域设置,因为这是导致本地化数字的原因。也许保留此默认值或设置为 'en'.

var myNumberFormat = NumberFormat('#,##,##0.00', 'en');
var myString = '${myNumberFormat.format(123456.78} ৳';

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

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

这将导致:1,23,45,678.01 BDT