Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 浮点数的不精确性_Ios_Objective C_C_Nsnumber - Fatal编程技术网

Ios 浮点数的不精确性

Ios 浮点数的不精确性,ios,objective-c,c,nsnumber,Ios,Objective C,C,Nsnumber,如果我创建了一个双倍值为0.085的NSNumber,那么这个数字似乎增加了额外的精度。但是,0.85的情况并非如此。我不明白为什么会这样,但我相信有一个非常明显的答案。有人知道为什么吗 例如: NSNumber *n1 = [NSNumber numberWithDouble:0.85]; NSNumber *n2 = [NSNumber numberWithDouble:0.085]; NSLog(@"Number: %@", n1); // Number: 0.85 NSLog(

如果我创建了一个双倍值为
0.085
NSNumber
,那么这个数字似乎增加了额外的精度。但是,
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

这与
double
有关,而不是与
NSNumber
有关
double
是一个值,它不会提供特定级别的精确小数点。

@HotLicks此问题没有问题,也不要求发布问题之前必须了解一门语言的全部内容。@AirsourceLtd-可能没有,但他应该检查一下“提问”页面在他输入问题时呈现给他的20个左右的副本中的一个。@HotLicks-当然,但标记这一点,而不是OP缺乏知识。@AirsourceLtd-不应该使用Objective-C(至少没有任何严肃的意图)。