Flutter 不改变语言的颤振数字格式
我正在尝试根据所选货币设置数字格式,而不进行转换。例如Flutter 不改变语言的颤振数字格式,flutter,locale,currency,number-formatting,Flutter,Locale,Currency,Number Formatting,我正在尝试根据所选货币设置数字格式,而不进行转换。例如 Text(NumberFormat.simpleCurrency( locale: 'bn_BN', ).format(123456.78)); 输出 ১,২৩,৪৫৬.৭৮৳ 我需要格式,但不需要本地语言。我怎么才能让它看起来像这样呢- 1,23,456.78 BDT or 1,23,456.78 ৳ 有没有办法做到这一点 另外,我只需要将千位分隔符或分组设置为货币默认值,例如BDT分组为XX,XX,XXX,千位后的第一个逗
Text(NumberFormat.simpleCurrency(
locale: 'bn_BN',
).format(123456.78));
输出
১,২৩,৪৫৬.৭৮৳
我需要格式,但不需要本地语言。我怎么才能让它看起来像这样呢-
1,23,456.78 BDT or 1,23,456.78 ৳
有没有办法做到这一点
另外,我只需要将千位分隔符或分组设置为货币默认值,例如BDT分组为XX,XX,XXX,千位后的第一个逗号,然后每两位后的逗号。这是NumberFormat自己做的事情,但不幸的是,只有当您通过locale时才会这样做。请在另一个问题中查看此答案: 最后一个示例是您希望在格式
#、##、##0.00
我认为你不想提供你的BN语言环境,因为这就是造成本地化数字的原因。可能保留此默认值或设置为“en”
var myNumberFormat=NumberFormat(';
var myString='${myNumberFormat.format(123456.78}৳';
您可以在代码中的某个地方定义自定义数字格式(假设您将在应用程序的不同部分使用它),并使用它格式化()数字:
final myFormatter=新的NumberFormat.currency(
名称:“BDT”,
小数位数:2,
customPattern:“#,#,#,##0.00\u00A4”,
);
Text(myFormatter.format(12345678.01)),
这将导致:1,23,45678.01 BDT格式化时“123456789.78”应该是什么样子?我在问题1,23456.78 BDT或123456.78中说过৳这就是为什么我问这个数字比你的例子大1000倍。Peanut 12,34,56789.78谢谢你指出了正确的方向。我最终制作了一个全局函数,从区域设置中获取图案和符号,然后用这两个东西格式化。