对于float和double的取值范围,网上很多有误的,其并不是按位直接计算。
基本类型 | 字节数 | 位数 | 最大值 | 最小值 |
---|---|---|---|---|
byte | 1 | 8 | 2^7 - 1 | -2^7 |
short | 2 | 16 | 2^15 - 1 | -2^15 |
int | 4 | 32 | 2^31 - 1 | -2^31 |
long | 8 | 64 | 2^63 - 1 | -2^63 |
float | 4 | 32 | 3.4028235E38(2^128 - 1) | 1.4E - 4(2^-149) |
double | 8 | 64 | 1.7976931348623157E308(2^1024-1) | 4.9E - 324(2^-1074) |
char | 2 | 16 | 2^16 - 1 | 0 |
注意点:
- float和double的取值范围并不是按位数直接计算,其能取到很大的范围(算2的1000次方可以直接用double存)
- 计算取值范围时记得考虑负数