浮点型变量
一.双精度浮点型
double d = 3.14;
System .out.println(d);
神奇的代码一:
int a = 1;
int b = 2;
System.out.println(a/b);//输出是0.5吗?
在Java中,int除以int的值任然是int(会直接舍弃小数部分:切记不是四舍五入哈):如果需要用到0.5,需要使用double类型计算。
double a = 1.0;
double b = 2.0;
System.out.println(a/b);//输出0.5
神奇的代码二:
double num = 1.1;
System.out.println(num*num);//输出1.21吗?
//执行结果
1.2100000000000002
注意事项:
-
double在任何系统下都占8个字节
-
浮点数与整数在内存中的存储方式不同,不能单纯使用2^n的形式来计算
-
double的包装类型是Double
-
double类型的内存布局遵守 IEEE 754 标准(和C语言一样),尝试使用有限的空间表示可能无限小的小数。势必会存在一定精度的误差,因此浮点数是一个近似值,并不是精确值。
二.单精度浮点型
float num = 1.0f;//写作1.0F也可以
System.out,println(num);
float类型在Java中占四个字节,同样遵循IEEE 754标准,由于表示的数据精度范围较小,一般在工程上用到浮点数都优先考虑double,不太推荐float,float的包装类型为Float。