アプリを 32 ビット環境と 64 ビット環境で実行すると、 2 倍のサイズに違いはありますか?
私が間違っていなければ、32 ビット環境の double は 0 の後に 16 桁を占めますが、64 ビット環境の double は 32 ビットを占めますよね?
いいえ、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 ビットでしたが、今日もそうです。
C# では double は常に 8 バイト (64 ビット) です
変わりません。
これを確認する簡単な方法は、単純なコンソール アプリを作成することです。
Console.WriteLine(Double.MaxValue);
x86 と x64 の両方にコンパイルします。