我看到有些人编写代码,其中声明需要浮点的东西的临时使用使用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个字节。
答案 0 :(得分:0)
正如我指出in this answer,float
有几种方式可以比double
更快,但一般情况下除非您确定浮点数是瓶颈,我建议坚持double
。它还可以避免this,this和this等问题。
一个明显的例外是,如果只有硬件支持是针对单精度的(例如Cortex M4)。