我一点也不明白。这里有什么问题?
我试过输入1.0,1.0f,(CGFloat) 1.0和(CGFloat)(2.0 - 1.0)。每次都是同样的错误。

发布于 2014-02-20 05:08:24
为此,我建议使用FLT_EPSILON:
XCTAssertEqualWithAccuracy(mov.lastDelta, 0.0f, FLT_EPSILON, @"");
除非你有理由需要一个更大的感应器。
发布于 2013-10-08 08:03:54
您的数字的小数部分0.9不能用浮点数精确地表示。一些四舍五入将发生,这可能是失败的原因。
0.9 = (1/2) + (1/4) + (1/8) + (1/64) + (1/128) + (1/1024) + (1/2048) + (1/16384) + (1/32768) + (1/262144)等= 0,8999978005等。
在双星系统中,向人眼看的分数可能不是圆的。
0.5是cpu = (1/2)的整数。
0.75是圆的cpu = (1/2) + (1/4)。
即使0,9072265625是圆形( (1/2) + (1/4) + (1/8) + (1/32) + (1/1024) )
但不是0.9或0.1。甚至连0.2 :)
编辑:当然,使用epsilon来比较浮标。
https://stackoverflow.com/questions/19232070
复制相似问题