【发布时间】:2012-07-03 17:44:17
【问题描述】:
在将包含两位标准十进制数字(例如 8.20)的 NSString 转换为 NSNumber 时,当通过 @987654323 记录结果时,我(不时)得到额外的数字和奇怪的舍入行为@ 或将其保存在 Core Data 中(作为浮点数或双精度数),例如8.20 -> 8.199999999999999。
这是我用来转换数字的代码:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:5];
NSNumber *num = [numberFormatter numberFromString:str];
我不明白为什么转换为 NSNumber 会弄乱数字。我的代码有什么问题?
【问题讨论】:
-
请教授解释“浮点数”。
标签: objective-c ios nsstring nsnumber nsnumberformatter