不改变语言的 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
我正在尝试根据选定的货币格式化数字而不进行翻译。例如
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