Gra*_*ton 33 c# floating-point double 64-bit ieee-754
当我在32位和64位环境下运行我的应用程序时双倍大小有什么区别吗?
如果我没有弄错的话,32位环境中的双精度将在0之后占用16位数,而64位中的双位将占用32位,我是对的吗?
Joh*_*ica 65
不,IEEE 754双精度浮点数始终为64位.类似地,单精度float
总是32位.
如果您的问题是专门针对C#和/或.NET(正如您的标记所示),则所有数据类型大小都是固定的,与您的系统架构无关.这与Java相同,但与C和C++不同,其中类型大小因平台而异.
在C和C++中,不同体系结构上的整数类型具有不同的大小是很常见的.例如,int
在16位DOS中为16位宽,在Win32中为32位宽.然而,IEEE 754标准是无处不浮点运算是的大小float
和double
你没有,你会发现在现实世界中的任何系统上有所不同- 20年前double
为64位,所以今天它.
它没有改变.
检查这个的简单方法是编写一个简单的控制台应用程序
Console.WriteLine(Double.MaxValue);
Run Code Online (Sandbox Code Playgroud)
并编译为x86和x64.