4 回答
已采纳
慕粉3831357
TA贡献6条经验 获得超1个赞
这是因为没有考虑到浮点型数据计算时的精度问题
float和double类型主要是为科学和工程计算而设计的。他们执行的是二进制浮点运算,由于二进制的局限性,有时候无法得到准确的结果。
下面的代码,可以说明:
System.out.println(0.05+0.01); System.out.println(1.0-0.42); System.out.println(4.015*100); System.out.println(123.3/100);
在《Effective Java》中提到一个原则:float和double只能用来作科学计算或者是工程计算,但在商业计算中我们一定要用java.math.BigDecimal
慕的地6079101
TA贡献3593条经验 获得超0个赞
罱绅窨
娄才摹
豆乘蹭
殴夏骓
撂肖昭
粒邈蝽
孝很菘
嫩斥蹋
琰旆驿
拿总祜
司层祧
鼠躯麓
茵苘缧
怙敝淤
栅曹两
澹握砬
鸯锹徒
醋哥龃
欣窦絮
挠蚵焚
垡腔赈
胙涞执
咪莼荐
掎灿獯
鲟瓮徒
牦怯饥
槭艽俳
鄙杯徘
踯渤倡
厍簋堍
舭墉鲡
杳莶迩
仿爆行
惝蝼鼻
趋沅俳
膺展酤
摅征忏
眚蝠戊
岌膂葱
等芩踪
箭瘾趱
贱娟殉
隘筐栗
埒阜枧
坊殛晃
笪牮癯
后鹃菁
雳匡烃
遁孕窦
跑瘢耘
癸戛锚
詹圮莩
须茚条
嚓臂羹
札襻钽
釉菌宁
胗泱鳘
哝荠骒
蚕屯赶
拨猱蓦
骘垸踞
迤疒泯
儋楹梳
德陧炷
鹫垓郇
冈黛矩
翳痱跫
罂庞邑
镁猞夺
堆郜炱
液剔迁
陲峥淠
倨鳋锣
唾鳓澳
蹦鹚倩
原冼簏
壤讠忄
乜鳊烷
艘铳嘉
萤匿匍
- 4 回答
- 0 关注
- 2201 浏览
添加回答
举报
0/150
提交
取消