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());
Run Code Online (Sandbox Code Playgroud)
上面的输出打印为78.54,但如果我通过计算器(windows calc接口)执行相同的操作,则输出为78.57(即22/7 * 25).
为什么会出现不一致的情况
Viv*_*sse 20
您是否将22/7PI用作PI的近似值?因为22/7是3.142857142857...其中PI是约3.14159....这解释了您的舍入不一致性.
此处记录了JVM中使用的PI的近似值.根据JavaDoc,它是:
比pi更接近的双值