我仍然是一个编程初学者,总是有比我们的书或互联网搜索更多的问题无法回答(除非我错过了什么)。因此,如果这个问题已经被解答过,但我没有找到,请提前道歉。
我知道浮点数的范围比双精度浮点数小,因此精度较低,并且根据我的理解,长双精度浮点数甚至更加精确(?). 所以我的问题是,为什么你想要在第一次使用不太精确的变量呢?它是否与不同平台、不同操作系统版本、不同编译器有关? 还是在编程的特定时刻使用浮点数比使用双精度浮点数 / 长双精度浮点数更具战略优势?
谢谢大家!
我仍然是一个编程初学者,总是有比我们的书或互联网搜索更多的问题无法回答(除非我错过了什么)。因此,如果这个问题已经被解答过,但我没有找到,请提前道歉。
我知道浮点数的范围比双精度浮点数小,因此精度较低,并且根据我的理解,长双精度浮点数甚至更加精确(?). 所以我的问题是,为什么你想要在第一次使用不太精确的变量呢?它是否与不同平台、不同操作系统版本、不同编译器有关? 还是在编程的特定时刻使用浮点数比使用双精度浮点数 / 长双精度浮点数更具战略优势?
谢谢大家!
double
与float
相比可以多达两倍的周期。当然,占用缓存的内存占用也是一个因素。float
的大小是double
的一半,而long double
则更大。float
,或者可以比double
处理两倍的float
数据量(据我所知,在任何处理器上都没有可用于long double
的SIMD指令)。 因此,如果使用float
而不是double
,则会提高性能,一次可以处理两倍的数据。结束编辑。float
。 如果需要更多数字或更大范围,请使用double
,如果还不够好,请使用long double
。但对于大多数事情来说,double
应该是完全足够的。显然,在需要大量计算或处理大量数据时,“使用正确的大小”变得更加重要——如果有5个变量,并且您只在程序中使用每个变量几次,这会导致什么问题吗?但如果您正在进行流体动力学计算以确定一辆时速200英里的赛车表现如何,那么您可能需要计算数千万个数据点,并且需要对每个数据点进行几十次计算才能模拟出汽车行驶的每秒钟情况。然后,在每次计算中额外使用了几个时钟周期将使整个模拟过程变慢。