比较float比double更有效吗

Is it more efficient to compare float than double?

本文关键字:有效 double float 比较      更新时间:2023-10-16

我认为它们在64位架构师上是一样的。

例如,我正在编写一个函数模板,我应该为float和double提供一个规范吗?还是应该只提供一个带double的规范,让其他数字自动转换为double?假设只考虑float、double、int、long、unsigned int和unsigned long的数字类型。

将浮点与浮点进行比较通常与将双精度与双精度进行比较相同或稍快,但无论哪种方式,差异通常都很小。您可能会看到的更大的性能问题是从浮点到双精度的转换,这可能是免费的,也可能非常昂贵,具体取决于转换的位置和方式。

无论哪种方式,都不值得太担心,除非你已经分析并发现了涉及该函数的某个巨大循环中的瓶颈,在这种情况下,你可以自己测试性能差异并做出相应的反应。

最佳解决方案:使用模板化类型。这将自动使用所提供的类型,并且所有速度优化都将由编译器完成。

仍然很好的解决方案是:有一个函数用于积分,另一个用于使用您想要支持的最大类型(通常是longdouble)的浮点类型。

对整型使用浮点运算会丢失精度,应避免。