2011-01-05 96 views
4

我使用KeyboardType = UIKeyboardTypeDecimalPad,在某些电话上,您在左下角看到“,”而不是“。”。这取决于手机的语言设置!随着“。”版本一切工作正常,当我使用[NSNumber numberWithFloat:[textField.text floatValue]],但与“,”版本2.0说2.5。有人知道工作吗?将NSString转换为特定于语言环境的NSNumber

回答

6

您需要进行本地感知字符串转换,根据默认语言环境正确对待“2.5”和“2.5”。尝试:

NSNumber *num=[NSDecimalNumber decimalNumberWithString:textField.text]; 

NSDecimalNumber Class Reference

无论NSDecimalSeparator是 期间(如被使用,例如,在 美国)或逗号(如 使用,例如,在法国)取决于默认语言环境 。

+1

感谢您的咨询! - [NSDecimalNumber decimalNumberWithString:textField.text locale:[NSLocale currentLocale]]帮助:) – 2011-01-05 10:53:09

+0

额外的建议!如果您想稍后更改文本字段的值,则应该使用[NSString localizedStringWithFormat:...],以便正确显示。 – 2011-01-05 11:00:35

相关问题