java浮点数据类型

关于浮点数据类型:
float单精度【4个字节】
double双精度【8个字节,精度较高】
double的精度太低,不适合做财务软件。
财务涉及到钱的问题,要求精度较高,所以sun在基础se类库当中
为程序员准备了精确度更高的类型,只不过这种类型是一种引用数据类型,不属于基本数据类型,它是:java.math.BigDecimal

在java语言当中,所有的浮点型字面值【3.0】,默认被当做double类型来处理,要想该字面值当做float类型来处理,需要在字面值后面添加F/f。
如:
double = 3.0;
3.0是double类型的字面值
d是double类型的变量
不存在类型转换

5.1是double类型的字面值
f是float类型的变量
大容量转换成小容量需要加强制类型转换符,所以以下程序编译错误。
float f=5.1;
解决方案:一(强制类型转换)
float f=(float)5.1;
解决方案:二(没有类型转换)
float f=5.1f;

注意:
double和float在计算机内部二进制存储的时候存储的都是近似值。
在现实世界当中有一些数字是无限循环的,例如:3.3333333333333333333333...
计算机的资源是有限的,用有限的资源存储无限的数据只能存储近似值。

猜你喜欢

转载自www.cnblogs.com/zhuojinyong/p/11605610.html