在32位和64位环境下运行应用程序时,double大小是否存在差异?
如果我没弄错,32位环境中的双精度在0之后将占用16位数,而64位中的双位将占用32位,我是对的吗?
答案 0 :(得分:63)
不,IEEE 754 double-precision floating point number总是64位。同样,单精度float
总是32位。
如果您的问题是关于C#和/或.NET的(如您的标记所示),所有数据类型大小都是固定的,与您的系统架构无关。这与Java相同,但与C和C ++不同,其中类型大小因平台而异。
在C和C ++中,不同体系结构的整数类型通常具有不同的大小。例如,int
在16位DOS中为16位宽,在Win32中为32位宽。但是,IEEE 754标准对浮点计算无处不在,float
和double
的大小 不会在现实世界中找到的任何系统上发生变化 - - 20年前double
是64位,今天就是这样。
答案 1 :(得分:10)
在c#中,double总是8个字节(64位)
答案 2 :(得分:8)
它没有改变。
检查此问题的一种简单方法是使用
编写一个简单的控制台应用程序Console.WriteLine(Double.MaxValue);
并编译为x86和x64。