我做了一些计时测试,还阅读了一些文章,例如this one(最后一条评论),看起来在发布版本中,浮点和双精度值花费相同的处理时间。
这怎么可能?当 float 与 double 值相比精度较低且较小时,CLR 如何在相同的处理时间内获得 double 值?
至少在 x86 处理器上,float
and double
每个都会由 FPU 转换为 10 字节实数进行处理。 FPU 没有针对其支持的不同浮点类型的单独处理单元。
古老的建议是float
比double
100 年前应用,当时大多数 CPU 没有内置 FPU(而且很少有人有单独的 FPU 芯片),因此大多数浮点操作都是在软件中完成的。在这些机器上(由熔岩坑产生的蒸汽提供动力),它was使用速度更快float
s。现在唯一真正的好处float
其优点是它们占用的空间更少(只有当您拥有数百万个它们时,这一点才重要)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)