今天,我浏览了一些 C++ 代码(由其他人编写)并找到了这个部分:
double someValue = ...
if (someValue < std::numeric_limits<double>::epsilon() &&
someValue > -std::numeric_limits<double>::epsilon()) {
someValue = 0.0;
}
我试图弄清楚这是否有意义。
的文档epsilon()
说:
该函数返回 1 和大于 1 的最小值之间的差值,该值可表示 [用双精度数]。
这是否也适用于 0,即epsilon()
最小值是否大于 0?或者0
和之间是否有0 + epsilon
可以用 a 表示的数字double
?
如果不是,那么比较不等于someValue == 0.0
?