1

このメソッドを使用して 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];
}
4

2 に答える 2

0

numberfromstringメソッドは文字列を受け入れてから数値を返すため、文字列形式が正しくないように見えますが、あなたの場合、90.000は有効な文字列ではないようですので、そのように渡して確認してください

 NSString *num=@"90.000"; 

そして、それが動作することを確認してください。

于 2013-10-14T09:24:42.010 に答える