【发布时间】:2023-04-01 21:51:02
【问题描述】:
float 大小为 4 个字节,long 大小为 8 个字节。
所以,float 的大小小于 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
所以,double 可以保持更大的值,并且比 decimal 占用更少的大小。为什么?
【问题讨论】:
-
另请参阅同一问题的更上下文化版本的答案:stackoverflow.com/questions/4232590/…。也许最重要的是,请阅读此文档:docs.sun.com/source/806-3568/ncg_goldberg.html