floatのサイズは4バイトで、長さは8バイトです。
したがって、floatのサイズはlongのサイズよりも小さくなります。しかし、floatの範囲はlongより大きい。Is値の範囲はデータ型のサイズによって異なりますか?
小数点以下は同じです。
データ型
+----------+------------+----------------------+
| Data Type| Size | Range |
+----------+------------+----------------------+
| long | 8 bytes |-9.22e18 .. 9.22e18 |
| float | 4 bytes |-3.40e38 .. 3.40e38 |
| decimal | 16 bytes |-7.92e28 .. 7.92e28 |
| double | 8 bytes |-1.80e308 .. 1.80e308 |
+----------+------------+----------------------+
例:
decimal f = 10000000000000000000.0m; //takes 16 bytes
double d = 10000000000000000000000000000.0d; //takes 8 bytes
ので、ダブルは、より大きな値を保持し、decimal.Why未満のサイズを取ることができますか?
同じ質問の文脈に近いバージョンの回答もご覧ください:http://stackoverflow.com/questions/4232590/casting-float-maxvalue-to-long-throws-exceptionおそらく最も重要なことは、このドキュメントをお読みください:http://docs.sun.com/source/806-3568/ncg_goldberg.html –