我发现有些人在编写需要浮点数的代码时,会声明使用float类型(在C/C++中)。这不是一个巨大的矩阵,空间并不是问题,也没有尝试将更多内容放入SIMD等等。很小的事情,比如按百分比缩放值,或者在两个量之间找到一个比率。
我一直使用double,并认为float只在空间真正成问题时才使用。我还记得桌面CPU没有浮点硬件的日子,可能会有一些关于软件库性能的说法,但随着第一个“287协处理器”的出现,本地精度已经达到了80位,而float仅用于长期存储值在RAM或文件中,并不影响计算速度。
今天,在这种习惯性方式下,是否有任何理由使用float而不是double呢?情况1:特定于PC/Mac硬件; 情况2:可移植的代码,可能在台式机和手机等移动设备上运行。
我是否应该向我的团队传授我所记得的方式:“嘿,你知道吗,float是一种半尺寸的东西,而double则是正常的。”或者有没有一些权衡或原因,使C++程序员在似乎(对我来说)不知道double存在的情况下到处使用float呢?
我的问题不特定于语言,但是我的术语是float为4个字节,而double为8个字节。
我一直使用double,并认为float只在空间真正成问题时才使用。我还记得桌面CPU没有浮点硬件的日子,可能会有一些关于软件库性能的说法,但随着第一个“287协处理器”的出现,本地精度已经达到了80位,而float仅用于长期存储值在RAM或文件中,并不影响计算速度。
今天,在这种习惯性方式下,是否有任何理由使用float而不是double呢?情况1:特定于PC/Mac硬件; 情况2:可移植的代码,可能在台式机和手机等移动设备上运行。
我是否应该向我的团队传授我所记得的方式:“嘿,你知道吗,float是一种半尺寸的东西,而double则是正常的。”或者有没有一些权衡或原因,使C++程序员在似乎(对我来说)不知道double存在的情况下到处使用float呢?
我的问题不特定于语言,但是我的术语是float为4个字节,而double为8个字节。