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