iphone - 将 NSString 转换为特定于语言环境的 NSNumber

标签 iphone ios nsstring nsnumber

我正在使用 KeyboardType = UIKeyboardTypeDecimalPad,在某些手机上,您会在左下方看到一个“,”而不是“.”。这取决于手机的语言设置!与“。”当我使用 [NSNumber numberWithFloat:[textField.text floatValue]] 时,版本一切正常,但对于“,”版本,它表示 2.0 表示 2,5。有人知道解决方法吗?

最佳答案

您需要进行本地感知字符串转换,根据默认语言环境正确处理“2.5”和“2,5”。尝试:

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

来自 NSDecimalNumber Class Reference :

Whether the NSDecimalSeparator is a period (as is used, for example, in the United States) or a comma (as is used, for example, in France) depends on the default locale.

关于iphone - 将 NSString 转换为特定于语言环境的 NSNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4602850/

相关文章:

方向更改后 iOS ViewController 布局不正确

c++ - 如何将 Swift 与 C 或 C++ 连接?

ios - 在 iOS 中打开包含视频和照片的图库

iphone - 判断 NSString 的第一个字符是否为数字

iphone - 如何防止核心数据中 bool 值的滥用(即忘记将 "boolValue"从 NSNumber 转换)

ios - 无法在苹果中找到崩溃,象征着 ios 中的崩溃报告

ios - 在 Swift 中从单个字典填充 tableview 的不同部分

cocoa - 处理临时字符串的更好方法是什么?

ios - 为从字符串文字分配的 NSStrings 获取相同的内存地址

iphone - 从 iOS 中的 App Delegate 调用当前 View Controller 中的方法