小编Kar*_*ary的帖子

双精度C++

我认为double的精度导致了这个问题,就像在类似的帖子中描述的那样,但我想知道是否有办法实现正确的结果.我正在使用比较两个参数的函数模板,如果它们相等则返回true.

template <class T>
bool eq(T one, T two)
{
  if (one == two)
    return true;
  else
    return false;
}
Run Code Online (Sandbox Code Playgroud)

它适用于eq(0.8,0.8),但它不适用于eq(0.8*0.2,0.16).正如我所提到的,我认为它与双精度有关,因为它也适用于int eq(8*2,16).

c++ floating-point

2
推荐指数
2
解决办法
2427
查看次数

标签 统计

c++ ×1

floating-point ×1