我正在使用KeyboardType = UIKeyboardTypeDecimalPad
,而在某些手机上,您会在左下角看到“,”而不是“。”。这取决于手机的语言设置!随着“。”版本一切正常,当我使用[NSNumber numberWithFloat:[textField.text floatValue]]但是使用“,”版本时,它表示2.0为2,5。有人知道解决方法吗?
答案 0 :(得分:6)
您需要执行本地感知字符串转换,根据默认语言环境正确处理“2.5”和“2,5”。尝试:
NSNumber *num=[NSDecimalNumber decimalNumberWithString:textField.text];
来自NSDecimalNumber Class Reference:
NSDecimalSeparator是否为 期间(例如,用于 美国)或逗号(按原样) 例如,在法国使用)取决于 在默认语言环境中。
答案 1 :(得分:0)
NSNumberFormatter *numberFormatter = [NSNumberFormatter new];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[numberFormatter setLocale:usLocale];
NSNumber *num = [numberFormatter numberFromString:textField.text];
您可以为我们设置语言环境,并始终使用。批注号。