比较float比double更有效吗
Is it more efficient to compare float than double?
我认为它们在64位架构师上是一样的。
例如,我正在编写一个函数模板,我应该为float和double提供一个规范吗?还是应该只提供一个带double的规范,让其他数字自动转换为double?假设只考虑float、double、int、long、unsigned int和unsigned long的数字类型。
将浮点与浮点进行比较通常与将双精度与双精度进行比较相同或稍快,但无论哪种方式,差异通常都很小。您可能会看到的更大的性能问题是从浮点到双精度的转换,这可能是免费的,也可能非常昂贵,具体取决于转换的位置和方式。
无论哪种方式,都不值得太担心,除非你已经分析并发现了涉及该函数的某个巨大循环中的瓶颈,在这种情况下,你可以自己测试性能差异并做出相应的反应。
最佳解决方案:使用模板化类型。这将自动使用所提供的类型,并且所有速度优化都将由编译器完成。
仍然很好的解决方案是:有一个函数用于积分,另一个用于使用您想要支持的最大类型(通常是long
和double
)的浮点类型。
对整型使用浮点运算会丢失精度,应避免。
相关文章:
- 欧拉项目#8答案是大以获得有效答案
- 调整大小后指向元素值的指针unordered_map有效?
- 为什么是0;C++中的有效语句
- 最高有效数字侧的第N位
- GCC对可能有效的代码抛出init list生存期警告
- 有效地使用std::unordered_map来插入或增加键的值
- c++中O(n^(1/3))中一个数的除数的有效计数
- 使用无符号字符数组有效存储内存
- 自定义先决条件对移动分配运算符有效吗
- C++在数学计算中将double转换为int
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 在c++中为double类型的数组创建一个unique_ptr
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- const_cast<double*> 有效,但 const_cast<int*> 不起作用
- 比较float比double更有效吗
- 在 2D 标准::矢量<矢量中查找唯一值的有效方法<double>>
- 为什么用“std::chrono”进行时差测量时,与“double”类型相比,用“float”类型给出的有效数字更多
- 有效地将Double转换为不带科学符号或尾随零的string
- 包含两个双精度的类是 std::complex 参数的有效替代品<double>吗?
- C++函数,从double开始进行基数为10的有效+指数计算