关键字 | 数据类型 | 占用字节数 | 取值范围 | 默认值 |
byte | 字节型 | 1个字节 | -128~127 | 0 |
char | 字符型 | 2个字节 | Unicode0~Unicode215-1 | \u0000 |
short | 短整型 | 2个字节 | -215~215-1 | 0 |
int | 整型 | 4个字节 | -231~231-1 | 0 |
long | 长整型 | 8个字节 | -263~263-1 | 0 |
float | 单精度浮点数 | 4个字节 | -2128~2128 | 0.0 |
double | 双精度浮点数 | 8个字节 | -21024~21024 | 0.0 |
boolean | 布尔型 | 1个字节 | true|false | false |
范围
float: 1bit(符号位) 8bit(指数位) 23bit(尾数为)
double: 1bit(符号位) 11bit(指数位) 52bit(尾数为)
float的指数范围 -127~128,而double的指数范围-1023~1024
float的范围为-2128~2128,也即-3.40E+38 ~ +3.40E+38;double的范围为-21024~21024,也即-1.79E+308 ~ +1.79E+308
精度
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:223 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
double:252 = 4503599627370496,一共16位,同理,double的精度为15~16位。
原文:http://www.cnblogs.com/caoyc/p/4367915.html