Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 不改变语言的颤振数字格式_Flutter_Locale_Currency_Number Formatting - Fatal编程技术网

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谢谢你指出了正确的方向。我最终制作了一个全局函数,从区域设置中获取图案和符号,然后用这两个东西格式化。