如何在Dart中将带逗号的字符串转换为双精度浮点数?

7

我有一个文本框,其中我接受字符串输入并使用double.parse()方法将其转换为浮点数。

我正在使用数字键盘来输入文本框。但是,当用户输入带逗号的数字,例如5,000时,我的程序会输出5.00。

如何在Dart中获得5,000的输出?


一种方法是使用字符串替换方法来忽略逗号。 - Madhawa Priyashantha
1
尝试使用.toStringAsFixed(小数位数)进行编程,例如:(5.000).toStringAsFixed(3);结果为5.000。 - tarek taamali
4个回答

15

对于你最后一个问题的答案:

String t = '5,000';
double f = double.parse(t.replaceAll(',',''));
print(f);

使用.replaceAll()方法将所有逗号替换为空字符。

14

您需要考虑本地化问题。欧洲国家使用逗号作为小数分隔符,而美国使用点号。

您需要使用intl包中的NumberFormat进行完整解决方案。

String t = '5,000';
double f = NumberFormat().parse(t);
print(f);

如果您没有传入语言环境,NumberFormat()会自动使用设备当前的语言环境进行初始化。


0

使用intl包中的NumberFormat()函数。

double price = NumberFormat().parse(_textFieldController.text) as double;

0

你需要从你的输入字符串中移除","。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接