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

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

慕尼黑的夜晚无繁华

继续推荐我的博客:代码之谜(四)-浮点数(从惊讶到思考)代码之谜(五)-浮点数(谁偷了你的精度?)所以,使用BigDecimal类。对于@besto的回答。看过JDK文档和源码的都应该知道Double.toString(9.6)有很大的安全隐患。因为浮点数9.6本来就不是精确的。正确的写法:BigDecimala=newBigDecimal("9.6"));BigDecimalb=newBigDecimal("9"));System.out.println(""+a.multiply(b));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript