[英]Converting an NSString to a locale specific NSNumber
我使用的是KeyboardType = UIKeyboardTypeDecimalPad
,在某些手機上,你會在左下方看到一個“,”而不是“。”。 這取決於手機的語言設置! 隨着“。” 版本一切正常,當我使用[NSNumber numberWithFloat:[textField.text floatValue]]但是使用“,”版本時,它表示2.0為2,5。 有人知道解決方法嗎?
您需要執行本地感知字符串轉換,根據默認語言環境正確處理“2.5”和“2,5”。 嘗試:
NSNumber *num=[NSDecimalNumber decimalNumberWithString:textField.text];
NSDecimalSeparator是句點(例如,在美國使用)還是逗號(例如在法國使用)取決於默認語言環境。
NSNumberFormatter *numberFormatter = [NSNumberFormatter new];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[numberFormatter setLocale:usLocale];
NSNumber *num = [numberFormatter numberFromString:textField.text];
您可以將語言環境設置為我們並始終使用。 注釋編號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.