NSNumberFormatter
を使用して文字列を数値に変換しようとしています。私のアプリケーションでは、小数点以下2桁以上の入力文字列は無効です。すなわち、@"3.1"
と@"3.14"
は有効な入力ですが、@"3.141"
は有効ではありません。NSNumberFormatterを使用して文字列を検証する
NSNumberFormatter
のドキュメントでは、setMaximumFractionDigits:
「受信者からの入力として許容される小数点記号の後の最大桁数」が記載されています。
3.141
私は失敗する@"3.141"
の転換を期待していた(とnil
を返す):
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter.maximumFractionDigits = 2;
NSNumber *number = [numberFormatter numberFromString:@"3.141"];
NSLog(@"%@", number);
@"3.141"
を受け入れ、私に次のような出力を与えた:
だから、私はこのコードをするとき驚きました小数点区切り文字の後に可能な最大桁数を超えているためです。
明らかに私はここで基本的なものを理解していません。 NSNumberFormatter
は、文字列入力の検証の一環としてmaximumFractionDigits
を使用していませんか?
これにより、フォーマッタは番号を「拒否」しません。 – millimoose