2011-01-05 15 views
4

Ich benutze die KeyboardType = UIKeyboardTypeDecimalPad und auf einigen Handys sehen Sie ein "," auf der linken unteren statt eines ".". Das hängt von den Spracheinstellungen des Telefons ab! Mit dem "." version alles funktioniert gut, wenn ich [NSNumber numberWithFloat: [textField.text floatValue]] aber mit der "," Version 2,0 für 2,5 sagt. Kennt jemand eine Arbeit?Umwandlung eines NSString in eine länderspezifische NSNummer

Antwort

6

Sie müssen eine lokale Zeichenkettenkonvertierung durchführen, die "2.5" und "2.5" korrekt gemäß dem Standardgebietsschema behandelt. Versuchen:

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

Von NSDecimalNumber Class Reference:

Ob der NSDecimalSeparator eine Periode (wie verwendet wird, beispielsweise in die USA) oder ein Komma (als verwendet wird, zum Beispiel , in Frankreich) hängt auf dem Standardgebietsschema.

+1

Danke für den Hinweis! - [NSDecimalNumber decimalNumberWithString: textField.text locale: [NSLocale currentLocale]] hat geholfen :) –

+0

Ein zusätzlicher Hinweis! Wenn Sie den Wert des Textfelds später ändern möchten, sollten Sie [NSString localizedStringWithFormat: ...] verwenden, damit es korrekt angezeigt wird. –

Verwandte Themen