2011-01-05 4 views
4

私はKeyboardType = UIKeyboardTypeDecimalPadを使用しています。一部の電話機では、 "。"の代わりに左下に "、"が表示されます。それは電話の言語設定に依存します!とともに "。"私が[NSNumber numberWithFloat:[textField.text floatValue]]を使用すると、バージョンのすべてがうまく動作しますが、 "、"バージョンでは2.0と表示されます。誰もが周りの仕事を知っていますか?NSStringをロケール固有のNSNumberに変換する

答えて

6

"2.5"と "2,5"をデフォルトロケールに従って正しく扱うローカル対応の文字列変換を行う必要があります。 NSDecimalSeparatorは 期間( 米国では、例えば、使用されるような)またはカンマであるかどうか

( が使用されているように、例えば:NSDecimalNumber Class Referenceから

NSNumber *num=[NSDecimalNumber decimalNumberWithString:textField.text]; 

:試してみてください、フランス)は、デフォルトのロケールで に依存します。

+1

アドバイスありがとうございます! - [NSDecimalNumber decimalNumberWithString:textField.text locale:[NSLocale currentLocale]]助けてくれました。 –

+0

追加アドバイス!後でテキストフィールドの値を変更する場合は、[NSString localizedStringWithFormat:...]を使用して正しく表示されるようにしてください。 –

関連する問題