浮点数不精确

时间:2014-07-10 12:15:32

标签: ios objective-c c nsnumber

如果我创建一个NSNumber,其值为0.085,则数字似乎会增加额外的精度。但是,0.85不是这种情况。我不明白为什么会这样,但我确信这是一个非常明显的答案。有谁知道为什么?

例如:

NSNumber *n1 = [NSNumber numberWithDouble:0.85];
NSNumber *n2 = [NSNumber numberWithDouble:0.085];

NSLog(@"Number: %@", n1);     // Number: 0.85
NSLog(@"Number: %@", n2);     // Number: 0.08500000000000001

1 个答案:

答案 0 :(得分:3)

这与double而不是NSNumber有关。 double是一个floating-point number值,它不会在特定级别按设计提供精确的小数点数