最大的原因是内存空间。float 占用 32 位(4 字节),而 double 占用 64 位(8 字节)。这看起来似乎没什么大不了的,但有些应用程序会处理大量数字。
假设我正在使用 3D 网格模拟某个系统,该网格是宽度为 1,000 点的值的立方体。那是 1,000,000,000 个数据点。如果每个点都是浮点值,我需要 4 GB 内存。对于双打,我需要 8 GB 内存。如果我需要在网格中的每一点存储多个值,则内存需求就会变得更大。
与我刚才描述的网格类似的网格在物理模拟(气候或天气模型、某些流体动力学模拟等)中很有用。在这些类型的模拟中,添加两倍的点通常比在每个点添加两倍的精度更有用。
根据硬件的不同,计算速度也可能是时间敏感计算的一个因素,但哪个更好取决于底层硬件。(有关更多详细信息,请参阅此答案:/sf/answers/320929521/)
如果您正在为一个非常特定的硬件开发实时软件,并且该硬件处理浮点数的速度比双精度数快,那么您应该青睐浮点数。但是,某些处理器处理双精度的速度更快,因此您需要在做出此类性能决策之前了解您的硬件。
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |