【发布时间】:2011-07-10 04:19:09
【问题描述】:
double a = 10.123420834;
double b = 100.123412321;
if (a > b) {
// do something here
}
我正在尝试比较这两个值,上面的代码似乎不起作用。有什么想法吗?
【问题讨论】:
-
什么不起作用? “在这里做点什么”部分是否正在执行,即使您的示例有一个
-
a不大于b,所以// do something here永远不会被执行。 -
虽然我们在这里:为了真正的正确性,尽量避免将两个浮点变量相互比较;相反,尝试将它们之间的差异与一个小的“epsilon”进行比较——它们之间可接受的最小差异量,而它们仍然被认为是相等的。
floats 和doubles 有一些细微差别,使它们在比较中表现得有趣;它并不总是像您期望的那样工作。
标签: iphone objective-c ios floating-point double