今天,我浏览了一些 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?