ドキュメントを読むと、次のような醜いことをしなければなりません。
NSLocale *usLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:@"0.00001" locale:usLocale];
しかし: NSDecimalNumber クラスにピリオド (.) を探すように指示するより良い方法はありませんか? ロケールは私にとってとても危険に感じます。ある日、新しい大統領がピリオドのシンボルを から に変更するのはとてもクールだと考えたらどうなるでしょうか。に、 ? その後、アプリがクラッシュします。確かに、これはそれほど起こりそうにありません。しかし、それができる可能性はわずかです。これにロケールを使用するのは私を怖がらせるのに十分です;-)
何か案が?それともそれが私の唯一の選択肢ですか?それが唯一の選択肢である場合:上記のアプローチは正しいですか?それとももっと良いものがありますか?
そして: 正しく理解できれば、NSDecimalNumber オブジェクトはその文字列を読み取り、解析して、内部使用のために仮数、指数、および isNegative 値を作成しますよね?
編集:これらの値をプログラムで/手動で(私のコードで)追加することに言及する必要がありましたが、それらはユーザー入力ではありません。