float的大小爲4個字節,長的大小爲8個字節。
因此,float的大小比long的大小要小。但是,浮動的範圍大於long。值的範圍取決於數據類型的大小?
小數和雙數的情況相同。
數據類型
+----------+------------+----------------------+
| 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 – 2010-12-04 15:09:59