浮点数据的处理
注意:浮点数表示的不是一个准确的数字
存储货币时,均以最小货币单位且整型类型来进行存储。
0.1 默认是double类型,有效位数均为53
0.1f 有效位数23
(double)e 会在flout类型上补0
浮点数据类型的问题:精度丢失
浮点数通过科学计数法表示,是二进制形式的科学计数法,所有底数为2
有效位数其实前面省略了一个1,共24位(有效数字保存的只有小数部分)
十进制科学计数法规格化:
整数部分:1-9
二进制科学计数法规格化:
保持小数点前有且只有一个“1”(省略了前面的1,有效数字保存的只有小数部分)
精确的小数存储——decimal,java中用java.math.BigDecimal类
浮点数据避坑:
1、浮点数之间的等值判断,基本数据类型不能用==,包装数据类型不能用equals来判断。
(应该指定一个误差范围,两个浮点数的差值在此范围内,则认为是相等的)
2、Bi