数值范围
float类型又被称为单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。
double类型又被称为双精度类型,尾数可以精确到14位有效数字。
浮点类型默认是double。
public static void main(String[] args){float a=3.14;//报错,默认是double类型/*FloatDouble.java:5: 错误: 不兼容的类型: 从double转换到float可能会有损失float a=3.14;^1 个错误*/float b=3.14F;//正确}
不精确的浮点类型
浮点数存在舍入误差,很多数字不能精确表示,如果需要进行不产生舍入误差的精确计算,比如银行金融,需要使用BigDecimal类。
为什么说浮点数存在舍入误差?
1、同样是占用8个字节的Long类型,Long的大小范围要远远小于Double,Long和Double在内存里存储是不同的。
2、从0.0~0.1之间有多少个数字?无穷个。
在比较中,最好不要使用浮点数。如下面例子
public static void main(String[] args){float f=0.1f;double d=0.1;System.out.println(f==d);//输出结果false}
-------------
更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:
http://www.cnblogs.com/zengmiaogen/p/7083694.html