相关疑难解决方法(0)

精确为零的float/double相等

我有一个使用floatsdoubles执行一些计算的算法.

例:

double a;
double b;
double c;
...
double result = c / (b - a);
if ((result > 0) && (result < small_number))
{
    // result is relevant...
} else {
    // result not required...
}
Run Code Online (Sandbox Code Playgroud)

现在,我担心(b - a)可能是零.如果它接近于零而不是零,则无关紧要,因为result它将超出范围是有用的,并且我已经检测到(当(b - a)接近零时,result将接近+/- inf,这不在范围内0- small_number. ..)

但如果结果(b - a)恰好为零,我预计由于除以零而会发生某种平台依赖.我可以将if声明更改为:

if ((!((b-a) == 0.0)) && ((result = c/(b-a)) > 0) && (result …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point

9
推荐指数
2
解决办法
3万
查看次数

标签 统计

c++ ×1

floating-point ×1