簡體   English   中英

將NSString轉換為特定於語言環境的NSNumber

[英]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];

來自NSDecimalNumber類參考

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM