喂!
我得到了一个看起来像这样的 NSString:“$1.00”。始终是具有值的货币符号。
我格式化此字符串以删除符号和任何非十进制字符str = [str stringByTrimmingCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]
。这给我留下了“1.00”。
现在我正在检查[str rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]].location == NSNotFound
那里是否有任何非十进制字符。因为我在此之前删除了所有这些应该返回 YES。但是我没有指向小数点分隔符的位置。
有谁知道这里出了什么问题?也许这是一个愚蠢的错误,但我找不到它......
附加信息
我刚刚发现了一个类似的问题:我得到了一个字符串“$20,000.00”并使用执行此代码:
NSCharacterSet *nonNumbersSet = [[NSCharacterSet characterSetWithCharactersInString:[NSString stringWithFormat:@"0123456789."]] invertedSet];
NSString* numberString = [_value stringByTrimmingCharactersInSet:nonNumbersSet];
结果是“20,000.00”。这些方法似乎对这些字符一般都有问题。如果有人对此有解决方案,请告诉我。