float为单精度浮点类型,占4个字节,能表示的数范围小;double为双精度浮点类型,占8个字节,能表示的数范围大。
对于赋值来说,因为声明浮点数时默认为double类型,所以float需要在数的的后面添加f/F;
例:
float a=1.2 //错误
float a=1.2f //正确
float a=1.2F //正确
double b=1.2 //正确
double b=1.2d //正确
double b=1.2D //正确
两者都能表示小数,但是精度是不一样的,float是单精度,而double是双精度的,在取舍的时候会造成小数不一样。
float 占4个字节 精度是6位有效数字 取值范围是10的-38次方到10的38次方
double 占8个字节 精度是15位有效数字 取值范围是10的-308次方到10的308次方
赋值时float型变量强制后面用f结尾,float a=6.0f;
注意float是6位有效数字,第7位数字将会产生四舍五入
所以如果一个float变量 这样定义: float a=6.12345675; 则第7位将产生四舍五入(5及5以下的都将舍去)
存储范围不一样,一个4字节一个8字节
精度不一样,大概可以这样理解,同样表示圆周率一个3位小数一个10位小数的样子