将NSString
包含带两位数的标准十进制数(例如 8.20)的 a 转换为 a时,当通过记录结果或将其保存在 Core Data 中(作为浮点数或双精度数)NSNumber
时,我会(不时)得到额外的数字和奇怪的舍入行为NSLog
),例如 8.20 -> 8.199999999999999。
这是我用来转换数字的代码:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:5];
NSNumber *num = [numberFormatter numberFromString:str];
我不明白为什么转换为 NSNumber 会弄乱数字。我的代码有什么问题?