在快速iOS中从Decimal Pad浮动值

时间:2015-07-01 08:25:18

标签: ios swift

我有带有Decimal Pad的UITextField,我想将它的值转换为float。

var myValue: Float = NSString(string: myTextField.text).floatValue

在我的模拟器上我没有问题:在十进制键盘中,我看到数字和“。”所以我可以输入像123.45这样的值,但在设备上我有一个问题,因为在十进制键盘上我看到数字和“,”。所以在将“123,45”添加到myTextField后,我看到了

myValue = 123

我知道我可以改变“。”到“,”在设置中,但我真的不确定我的应用程序用户。

所以我的问题是 - 如何从十进制数据块中获取浮点值,而不仅仅是“。”使用Swift?

我看到两种解决方案: 1)我如何配置小数点显示“。”而不是“,”在任何设备上? 2)如何使用“,”分隔符转换为浮点字符串?

1 个答案:

答案 0 :(得分:4)

我只在ObjC中有这个片段,但答案是你需要使用NSNumberFormatter,问题是由于locale从输入到内部浮点的管理方式不同表示。

numberformatter = [[NSNumberFormatter alloc] init];
[numberformatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberformatter setMaximumFractionDigits:2];
[numberformatter setMinimumFractionDigits:0];
[numberformatter setLocale:[NSLocale currentLocale]];

Here关于如何使用数字格式化程序的更多提示