我有一个 NSString 转换为浮点值,记录的结果是这样的
2,146.952 as a float is 2.000000
逗号似乎会导致浮点值向下舍入,如果我使用 doubleValue] 它也会这样做。
有没有办法做到这一点2146.952
?
我有一个 NSString 转换为浮点值,记录的结果是这样的
2,146.952 as a float is 2.000000
逗号似乎会导致浮点值向下舍入,如果我使用 doubleValue] 它也会这样做。
有没有办法做到这一点2146.952
?
您应该使用 NSNumberFormatter。
如果格式始终为显示(来源:服务器 api),请将 decimalSeparator 设置为 groutingSeparator.
为,
.
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setDecimalSeparator:@"."];
[numberFormatter setGroupingSeparator:@","];
NSNumber *number = [numberFormatter numberFromString:numberString];
如果字符串格式以某种方式取决于用户偏好(通过键盘输入),请改为设置语言环境
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[NSLocale currentLocale]];
NSNumber *number = [numberFormatter numberFromString:numberString];
如果您设置类似的语言环境,则第二种解决方案也可用于第一种情况
[numberFormatter setLocale: [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
尝试,
1)从字符串中删除逗号为
NSString * str = [str stringByReplacingOccurencesOfString:@"," withString:@""];
2) 从字符串中检索浮点值
float f = [str floatValue];