我做了一些计时测试,也读了一些文章,比如this one(上一条 comments ),看起来在发布版本中,浮点值和双精度值占用的处理时间是一样的.

这怎么可能?当float与double值相比精度更低、更小时,CLR如何在相同的处理时间内获得double值?

推荐答案

在x86处理器上,至少floatdouble将分别由FPU转换为10字节的实数进行处理.对于它支持的不同浮点类型,FPU没有单独的处理单元.

float年前,当大多数CPU没有内置的FPU(而且很少有人有单独的FPU芯片)时,float年前就有一个古老的建议,即floatdouble快,所以大多数浮点操作都是在软件中完成的.在这些机器(由熔岩坑产生的蒸汽提供动力)上,使用floats要快was.现在,float的唯一真正好处是它们占用的空间更少(只有当你拥有数百万台时,这才是重要的).

.net相关问答推荐

跨请求共享数据

.NET 4.5 项目未在 Visual Studio 2022 中编译

双精度的 C++ 和 C# 十六进制值之间的差异

什么是提升运算符?

使用字典作为数据源绑定组合框

如何从标头中检索基本身份验证凭据?

HttpClient 请求抛出 IOException

从 switch 块中跳出 foreach 循环

在 Moq 中模拟泛型方法而不指定 T

一种消耗(所有字节)BinaryReader 的优雅方式?

我可以使用 UriTemplate 将非字符串传递给 WCF RESTful 服务吗?

找不到 Microsoft.Office.Interop Visual Studio

.NET - 实现捕获所有异常处理程序的最佳方法是什么

什么是 Hashtable 的通用版本?

如何使我的托管 NuGet 包支持 C++/CLI 项目?

如何获得 Bin 路径?

如何从文件中删除单个属性(例如只读)?

无锁多线程适用于真正的线程专家

C# 应用程序中的资源和嵌入式资源有什么区别?

App.config:用户与应用程序范围