将NSString转换为特定于语言环境的NSNumber

And*_*uel 4 iphone nsnumber nsstring ios

我正在使用KeyboardType = UIKeyboardTypeDecimalPad和在某些手机上你看到左下角的","而不是".".这取决于手机的语言设置!随着"." 版本一切正常,当我使用[NSNumber numberWithFloat:[textField.text floatValue]]但是使用","版本时它表示2.0为2.5.有人知道解决方法吗?

Nic*_*ore 6

您需要执行本地感知字符串转换,根据默认语言环境正确处理"2.5"和"2,5".尝试:

NSNumber *num=[NSDecimalNumber decimalNumberWithString:textField.text];
Run Code Online (Sandbox Code Playgroud)

来自NSDecimalNumber类参考:

NSDecimalSeparator是句点(例如,在美国使用)还是逗号(例如在法国使用)取决于默认语言环境.