intl的NumberFormat在非常大的数字上给出922,337,203,685,477,580,700

时间:2018-10-06 01:09:28

标签: dart flutter

我正在使用intlNumberFormat类来格式化我的数字。

我的pubspec.yaml是这样的:

intl:

当用户在文本字段中键入内容时,我有一个非常大的数字:

1,000,000,000,000,000,000,000

不使用intl,输出为:

1e+21

我想格式化它,以便普通人可以读取。

所以我做了这样的事情:

NumberFormat myFormat = new NumberFormat("#,##0.00", "en_US");

...

String _input = _textController.text; // user's input

double _number = double.tryParse(_input);

String _formatted = '${myFormat.format(_number)}';

这适用于小于1e + 21的数字。但是,当用户的输入等于或大于1e + 21时,其值为:

922,337,203,685,477,580,700.00   // output of 1e+21

922,337,203,685,477,580,700,000,000,000.00   // output of 1e+30

我完全不知道为什么给出了这样的数字。

我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用此flutter软件包bignum