偶数单次计算中的`float` vs`double`?

时间:2016-01-22 13:40:53

标签: floating-point

我看到有些人编写代码,其中声明需要浮点的东西的临时使用使用float类型(在C / C ++中)。这不是一个巨大的矩阵,其中空间很重要,或者试图更多地融入SIMD或类似的东西。很少的事情,比如按百分比缩放价值,或找到数量之间的比率。

我总是使用double并认为float仅适用于空间真正重要的时候。我记得台式机CPU没有浮点硬件的日子,可能会有关于软件库性能的说法,但是第一个'287协处理器的本机精度是80位,而float只是用于在RAM或文件中长期存储值,并且不会影响计算速度。

今天,有没有理由以这种习惯的方式使用float代替double情况1:特定于PC / Mac硬件;情况2:便携式代码,可能在桌面和移动设备上,如手机。

我应该按照记忆的方式教育我的团队:嘿,你知道,float是一个半尺寸的东西而double是正常的。还是有一些权衡或者为什么C ++程序员会在任何地方使用float并且看起来(对我的POV)不知道double是否存在?

我的问题并非针对该语言,但我的术语是float为4个字节,double为8个字节。

1 个答案:

答案 0 :(得分:0)

正如我指出in this answerfloat有几种方式可以比double更快,但一般情况下除非您确定浮点数是瓶颈,我建议坚持double。它还可以避免thisthisthis等问题。

一个明显的例外是,如果只有硬件支持是针对单精度的(例如Cortex M4)。