java – 舍入小数时获得不同的结果
发布时间:2020-12-15 02:05:57 所属栏目:Java 来源:网络整理
导读:double radius = 5;double area = Math.PI * Math.pow(radius,2); // System.out.println(area);BigDecimal bd = new BigDecimal(area).setScale(2,HALF_UP);// BigDecimal bd = new BigDecimal(area).setScale(2,ROUND_HALF_UP);System.out.println(bd.toSt
double radius = 5; double area = Math.PI * Math.pow(radius,2); // System.out.println(area); BigDecimal bd = new BigDecimal(area).setScale(2,HALF_UP); // BigDecimal bd = new BigDecimal(area).setScale(2,ROUND_HALF_UP); System.out.println(bd.toString()); 上面的输出打印为78.54,但如果我通过计算器(windows calc接口)执行相同的操作,则输出为78.57(即22/7 * 25). 为什么会出现不一致的情况 解决方法
您是否使用22/7作为PI的近似值?因为22/7是3.142857142857 …其中PI约为3.14159 ….这解释了您的舍入不一致性.
在here中记录了JVM中使用的PI的近似值.根据JavaDoc,它是:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |