2011-01-05 53 views
4

我使用KeyboardType = UIKeyboardTypeDecimalPad,在某些電話上,您在左下角看到「,」而不是「。」。這取決於手機的語言設置!隨着「。」版本一切工作正常,當我使用[NSNumber numberWithFloat:[textField.text floatValue]],但與「,」版本2.0說2.5。有人知道工作嗎?將NSString轉換爲特定於語言環境的NSNumber

回答

6

您需要進行本地感知字符串轉換,根據默認語言環境正確對待「2.5」和「2.5」。嘗試:

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

NSDecimalNumber Class Reference

無論NSDecimalSeparator是 期間(如被使用,例如,在 美國)或逗號(如 使用,例如,在法國)取決於默認語言環境 。

+1

感謝您的諮詢! - [NSDecimalNumber decimalNumberWithString:textField.text locale:[NSLocale currentLocale]]幫助:) – 2011-01-05 10:53:09

+0

額外的建議!如果您想稍後更改文本字段的值,則應該使用[NSString localizedStringWithFormat:...],以便正確顯示。 – 2011-01-05 11:00:35

相關問題