このメソッドを使用して 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 です (小数点区切り記号: "," グループ区切り記号: ".")
NSNumber 90000 で stringFromNumber を使用すると、NumberFormatter は正しくフォーマットされた文字列「90.000」を返します
テキストフィールドに文字列「90.000」を書き込むと、NumberFormatter は NSNumber 90000 の代わりに nil を返します
なぜ?
ありがとう
編集:テキストフィールドデリゲート
-(void)textFieldDidEndEditing:(UITextField *)textField
{
myObject.r.qtaOm = [Trim(textField.text) numberValue];
}