读书人

浮点型与零比较

发布时间: 2013-06-26 14:29:32 作者: rapoo

浮点型与0比较
我知道浮点型不能直接与0比较
正确的方法是浮点数与一个区间[0.0-EPSINON, 0.0+EPSINON]比较,
因为小数部分的值部分的值不为1/(2^n)就会产生误差,
问题时EPSINON这个精度是根据精度需求自定义的,还是个定数? 浮点型 比较
[解决办法]

引用:
能说明一下具体原理吗?
Quote: 引用:

计算你的计算机支持的最小精度.你可以自由选择精度,但是不能比最小精度更小.

#include <iostream>

double epsilon()
{
double f = 1.0;
while(1.0 < 1.0 + f) f /=2.0;
return f*2.0;
}

int main()
{
std::cout << epsilon() << std::endl;
return 0;
}
//2.22045e-16


看看这里

读书人网 >C语言

热点推荐