我有带有Decimal Pad的UITextField,我想将它的值转换为float。
var myValue: Float = NSString(string: myTextField.text).floatValue
在我的模拟器上我没有问题:在十进制键盘中,我看到数字和“。”所以我可以输入像123.45这样的值,但在设备上我有一个问题,因为在十进制键盘上我看到数字和“,”。所以在将“123,45”添加到myTextField后,我看到了
myValue = 123
我知道我可以改变“。”到“,”在设置中,但我真的不确定我的应用程序用户。
所以我的问题是 - 如何从十进制数据块中获取浮点值,而不仅仅是“。”使用Swift?
我看到两种解决方案: 1)我如何配置小数点显示“。”而不是“,”在任何设备上? 2)如何使用“,”分隔符转换为浮点字符串?
答案 0 :(得分:4)
我只在ObjC中有这个片段,但答案是你需要使用NSNumberFormatter
,问题是由于locale
从输入到内部浮点的管理方式不同表示。
numberformatter = [[NSNumberFormatter alloc] init];
[numberformatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberformatter setMaximumFractionDigits:2];
[numberformatter setMinimumFractionDigits:0];
[numberformatter setLocale:[NSLocale currentLocale]];
Here关于如何使用数字格式化程序的更多提示