我有一个文本框,其中我接受字符串输入并使用double.parse()方法将其转换为浮点数。
我正在使用数字键盘来输入文本框。但是,当用户输入带逗号的数字,例如5,000时,我的程序会输出5.00。
如何在Dart中获得5,000的输出?
对于你最后一个问题的答案:
String t = '5,000';
double f = double.parse(t.replaceAll(',',''));
print(f);
.replaceAll()
方法将所有逗号替换为空字符。您需要考虑本地化问题。欧洲国家使用逗号作为小数分隔符,而美国使用点号。
您需要使用intl包中的NumberFormat进行完整解决方案。
String t = '5,000';
double f = NumberFormat().parse(t);
print(f);
如果您没有传入语言环境,NumberFormat()会自动使用设备当前的语言环境进行初始化。
使用intl包中的NumberFormat()
函数。
double price = NumberFormat().parse(_textFieldController.text) as double;
你需要从你的输入字符串中移除","。