我使用这种方法在 NSString 上有一个类别:
-(NSNumber *)numberValue
{
if (!nfStr)
{
nfStr = [[NSNumberFormatter alloc] init];
}
NSLocale *current = [NSLocale autoupdatingCurrentLocale];
[nfStr setLocale:current];
[nfStr setDecimalSeparator:[current objectForKey:NSLocaleDecimalSeparator]];
[nfStr setGroupingSeparator:[current objectForKey:NSLocaleGroupingSeparator]];
return [nfStr numberFromString:self];
}
我当前的语言环境是 it-IT(小数分隔符:“,”分组分隔符:“.”)
当我将 stringFromNumber 与 NSNumber 90000 一起使用时,NumberFormatter 返回格式正确的字符串“90.000”
当我在文本字段中写入字符串“90.000”时,NumberFormatter 返回 nil 而不是 NSNumber 90000
为什么?
谢谢
编辑:文本字段委托
-(void)textFieldDidEndEditing:(UITextField *)textField
{
myObject.r.qtaOm = [Trim(textField.text) numberValue];
}