为了账号安全,请及时绑定邮箱和手机立即绑定

android上做了一个计算器 计算小数值的时候出现问题

android上做了一个计算器 计算小数值的时候出现问题

守着一只汪 2019-04-16 20:26:17
列如:9.6*9理应得到86.4结果是86.399999999999我知道好像是因为有些小数在计算机中的表示不是准确值,所以会出现这种情况。但是我想得到86.4这样的结果,因为算出来的数不确定有几位小数,所以也不好设double小数点后的位数,求大神解答疑惑。
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

继续推荐我的博客:
代码之谜(四)-浮点数(从惊讶到思考)
代码之谜(五)-浮点数(谁偷了你的精度?)
所以,使用BigDecimal类。
对于@besto的回答。看过JDK文档和源码的都应该知道Double.toString(9.6)有很大的安全隐患。因为浮点数9.6本来就不是精确的。
正确的写法:
BigDecimala=newBigDecimal("9.6"));
BigDecimalb=newBigDecimal("9"));
System.out.println(""+a.multiply(b));
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 754 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号