我做了一些计时测试,也读了一些文章,比如this one(上一条 comments ),看起来在发布版本中,浮点值和双精度值占用的处理时间是一样的.
这怎么可能?当float与double值相比精度更低、更小时,CLR如何在相同的处理时间内获得double值?
我做了一些计时测试,也读了一些文章,比如this one(上一条 comments ),看起来在发布版本中,浮点值和双精度值占用的处理时间是一样的.
这怎么可能?当float与double值相比精度更低、更小时,CLR如何在相同的处理时间内获得double值?
在x86处理器上,至少float
和double
将分别由FPU转换为10字节的实数进行处理.对于它支持的不同浮点类型,FPU没有单独的处理单元.
float
年前,当大多数CPU没有内置的FPU(而且很少有人有单独的FPU芯片)时,float
年前就有一个古老的建议,即float
比double
快,所以大多数浮点操作都是在软件中完成的.在这些机器(由熔岩坑产生的蒸汽提供动力)上,使用float
s要快was.现在,float
的唯一真正好处是它们占用的空间更少(只有当你拥有数百万台时,这才是重要的).