float和double的区别是什么?威哥讲java原创系列⽂章
1.1 内存中占有的字节数不同
单精度浮点数在内存中占有4个字节;
双精度浮点数在内存中占有8个字节;
1.2 有效数字位数不同
单精度浮点数有效数字8位;
双精度浮点数有效数字16位;
1.3 数值取值范围不同
单精度浮点数的表示范围:-3.40E+38~3.40E+38
双精度浮点数的表示范围:-1.79E+308~-1.79E+308
1.4 在程序中处理速度不同
⼀般来说,CPU处理单精度浮点数的速度⽐双精度浮点数的速度快;
如果不声明,默认⼩数是double类型,如果想⽤float,要进⾏强转。
1. 举例
float f = 1.3;会编译报错,正确的写法是float f = (float)1.3;或者float a = 1.3f;(f或F都可以不区分⼤⼩写)
1. 注意
float是⼋位有效数字,第七位会四舍五⼊。