4

iOS開発は初めてで、初心者向けにちょっとした賃金タイプの計算機を作っています。フランスやその他の英語以外の母国でアプリを利用できるようにするなど、さまざまな機能を検討しています。

ただし、私のアプリケーションは小数点を含む数値の計算に大きく依存しているため、フランスなどの国ではこの表記が使用されているため、iOSが小数点としてコンマを使用した場合に数値を計算するかどうかを知りたいです。

オーストラリア/米国/その他の国:

12.5 * 15.8 = 197.5

フランス/その他の国:

12,5 * 15,8 = 197,5

私は、a)小数点ではなくコンマが挿入されている場合でも、ローカルデバイスで計算されますか、b)そうでない場合、この表記を計算するようにアプリケーションにどのコードを含める必要がありますか?(区切り文字としてコンマを要求しているのではなく、小数点に相当するものを要求していることに注意してください。)

前もって感謝します!

4

3 に答える 3

2

実は、iOS には数値のローカライズを処理する便利なクラスが組み込まれています。これはNSNumberFormatterと呼ばれ、具体的には-setDecimalSeparator:メソッドがあります。

于 2012-05-29T06:27:17.667 に答える
1

小数点の代わりにコンマを使用すると、iOS アプリで数値が計算されますか?

はい。を使用している限り、かなり透過的に実行されますNSNumberFormatter

フランスのような国ではこの表記法が使用されているため、小数点としてコンマが使用されている場合、iOS が数字を計算するかどうかを知りたいです...

数値や日付などのフォーマット方法に関する情報は、NSLocaleクラスによって管理されます。NSNumberFormatterは現在のロケールを使用して数値を解釈および表示する方法を決定するため、この-numberFromString:メソッドを使用すると、フォーマッタは適切な小数点記号を使用します。を使用して数値の文字列表現を生成する場合も同じです-stringFromNumber:

あなたの目的のためには、おそらくロケールについて心配する必要はありません。数値フォーマッタを使用して入力を解釈し、出力を生成するだけで、フォーマッタはユーザーに適したロケールを使用します。ただし、ユーザー以外の言語または地域にローカライズされた情報をアプリで提供する場合は、-setLocale:メソッドを使用して、特定のロケールを使用するよう数値フォーマッターを設定できます。

于 2012-05-29T07:46:16.967 に答える
1

数値を使用する前に、数値を NSNumber に変換して「正規化」する必要があります。方法は次のとおりです。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];    
NSNumber *myNumber = [formatter numberFromString:@"197.5"];

これは正しい方法であり、この方法を使用すると、地域設定、カンマ区切りなどが考慮されます。

この時点で、myNumber は小数、浮動小数点数、整数などとして使用できます。

float myFloat = [myNumber floatValue];
于 2012-05-29T06:51:52.830 に答える