gpt4 book ai didi

c++ - double C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:50:06 25 4
gpt4 key购买 nike

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

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

它适用于 eq (0.8,0.8),但不适用于 eq (0.8*0.2,0.16)。正如我提到的,我假设它与 double 有关,因为它也适用于 int eq(8*2,16)。

最佳答案

首先,您应该阅读以下文章中的一篇(或两篇):What Every Computer Scientist Should Know About Floating-Point ArithmeticThe Perils of Floating Point .

如果您正在为您的模板寻找解决方案,我建议您使用 template specialization对于 T==doubleT==float 的情况。

关于c++ - double C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30753625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com