Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
Iphone 使用核心数据检索时,NSN编号不准确_Iphone_Objective C_Nsnumber - Fatal编程技术网

Iphone 使用核心数据检索时,NSN编号不准确

Iphone 使用核心数据检索时,NSN编号不准确,iphone,objective-c,nsnumber,Iphone,Objective C,Nsnumber,这对我来说有点奇怪,但当我对浮点进行基本除法时,得到的近似值不准确。这不是什么大问题,因为我可以截断数字,但我只是好奇为什么数字会这样。示例代码包括 NSString *stringNumber = @"2782"; float ratio = [stringNumber floatValue]/10000; NSNumber *sizeRatio = [NSNumber numberWithFloat:ratio]; //core data save... 在后续加载时,数字显示为:0.2

这对我来说有点奇怪,但当我对浮点进行基本除法时,得到的近似值不准确。这不是什么大问题,因为我可以截断数字,但我只是好奇为什么数字会这样。示例代码包括

NSString *stringNumber = @"2782";
float ratio = [stringNumber floatValue]/10000;
NSNumber *sizeRatio = [NSNumber numberWithFloat:ratio];

//core data save...
在后续加载时,数字显示为:0.2782000005245209


有什么想法吗?谷歌没有太大帮助,因为它不断向我显示“number”而不是“nsnumber”的结果这对于任何浮点数字来说都是正常的


请参见

这对于任何浮点数来说都是正常的


请参见

事实证明,在iOS上使用浮动会导致相当不准确的结果。我使用double的效果要好得多。

事实证明,在iOS上使用float会导致相当不准确的结果。我在使用double时取得了更好的成功。

它与NSNumber无关,与浮点数无关。它与NSNumber无关,与浮点数无关。我在近似凌乱的数字时可以理解这一点,但是简单地除以10000似乎有点傻。@pir 10000十进制是10011100010000二进制-不是这样的整数我在近似混乱的数字时可以理解这一点,但是简单地除以10000似乎有点傻。@pir 10000十进制是10011100010000二进制-不是这样的整数,这就是双倍的含义。这都是浮点运算。iOS没有什么特别之处。双打就是为了这个。这都是浮点运算。iOS没有什么特别之处。