float是单精度浮点类型32位,即float占用4个字节的存储空间,精度是8位有效数字,指数段有8bits,指数范围为[-127,127] 。

 2^127约等于1.7*10^38。38次方是数量级,舍去1.7。所以取值范围是10^-38到10^38。

提示:n位二进制原码和n位二进制反码:-2^(n-1)-1~+2^(n-1)-1;n位二进制补码:-2^(n-1)~+2^(n-1)-1

 

double是双精度类型,精度是17位有效数字,double占用8个字节的存储空间,取值范围是10^-308到10^308次方。

当你不声明的时候,默认小数都用double来表示,所以如果要用float的话,则必须在其后加上f。

例如:float a=1.3;则会提示不能将double转化成float这成为窄型转化。如果要用float来修饰的话,则应该使用  float a = 1.3f。

注意float是8位有效数字,第7位数字将会产生四舍五入

所以如果一个float变量这样定义:float a=1.32344435;则第7位将产生四舍五入变成1.3234444(5及5以下的都将舍去)