我正在使用intl的NumberFormat类来格式化我的数字。
我的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
我完全不知道为什么给出了这样的数字。
我将不胜感激。