首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较CGFloat中的XCTestCase?

如何比较CGFloat中的XCTestCase?
EN

Stack Overflow用户
提问于 2013-10-07 18:34:12
回答 2查看 3.8K关注 0票数 6

我一点也不明白。这里有什么问题?

我试过输入1.01.0f(CGFloat) 1.0(CGFloat)(2.0 - 1.0)。每次都是同样的错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-20 05:08:24

为此,我建议使用FLT_EPSILON

XCTAssertEqualWithAccuracy(mov.lastDelta, 0.0f, FLT_EPSILON, @"");

除非你有理由需要一个更大的感应器。

票数 18
EN

Stack Overflow用户

发布于 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来比较浮标。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19232070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档