mbp*_*pro 0 iphone objective-c nsstring
我需要将NSString转换为double.如果此字符串本质上是整数,则结果为OK.如果string是十进制,也可能是组分隔符,则结果为false.任何分隔符之王(无论是"."还是",")字符串中的第一个字母总是用作小数分隔符.
我曾尝试用NSScanner做一些事情,但我根本不明白如何解决这个问题.
想法如下:无论我输入textfield整数,还是带或不带组分隔符的十进制数,我想得到正确的十进制数.
我很乐意得到任何帮助.
提前致谢!
[string doubleValue]常规NSScanner总是使用.小数分隔符.本地化NSScanner使用当前语言环境中的小数分隔符.但是两个人都不知道如何对字符进行分组,因此它们不合适.
你必须用它NSNumberFormatter来做到这一点.最好在界面构建器中设置它,因为@Gobra说.但你也可以在这样的代码中执行此操作:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle: NSNumberFormatterDecimalStyle];
double value = [[formatter numberFromString: string] doubleValue];
Run Code Online (Sandbox Code Playgroud)
如果您需要知道字符串是否有效,您可以检查NSNumber返回的对象numberFromString:是否nil在发送doubleValue消息之前.
| 归档时间: |
|
| 查看次数: |
2221 次 |
| 最近记录: |