BradのCorePlotでは、このスニペットを見たので、コーヒーの必要がなくなりました。NSScannerはNSDecimalをスキャンする文字列をどのように想定していますか?
NSDecimal result;
NSScanner *theScanner = [[NSScanner alloc] initWithString:stringRepresentation];
[theScanner scanDecimal:&result];
Appleは言う:私は今、完全に目を覚ましてよ
スキャナのロケールは、それが は、文字列から値を解釈する方法に影響を与えます。 特に、スキャナは、整数および浮動小数点の小数部 表現を区別 にロケールの小数点を使用します。新しいスキャナの ロケールはデフォルトではnilであり、 はローカライズされていない値を使用します。
So:NSScannerインスタンスを作成してロケールを指定しないと、単純なソースコードで入力した場合と同じように、文字列が表す10進数値が予想されます。
i.E. @ " - 59933845504572.944882211"または@ "123.456789"または@ "145.002e33"または@ "145.002e-33"?それは正しいでしょうか?
ありがとうございました。しかし、一つのこと。ドキュメントには、「新しいスキャナのロケールはデフォルトではnilであり、ローカライズされていない値を使用するようになっています。それは、ユーザーのロケールに関係なく、ハードコードされた文字列に対してスキャナが機能するということではありませんか?それとも、アメリカのロケールを指定することで本当に安全ですか? –
私は分かりません。 iPhone Simulator(またはMac)で米国とドイツのロケールの両方でアプリケーションを実行し、小数点記号の変更が問題なく処理されるかどうかを確認することで、これをテストできます。 –
良いアイデア。新しい単語 "ヒッチ"を学んだ。それもありがとう、;-) –