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得到,但如果我通过计算器(窗口计算值接口)执行相同的操作的输出出来作为78.57(即22/7 * 25
)。不同结果而舍入小数
为什么会出现
这只是:pi实际上不是22/7。 – 2011-05-19 09:31:07
如果我在calc.exe中执行PI * 25,我得到78.539 ...,即四舍五入为78.54 – Thomas 2011-05-19 09:33:04
当我在小学时,我们的老师告诉我们,PI的定义是22/7。可悲的是,我直到14岁时才相信这一点。我童年时最大的创伤。 – 2011-05-19 09:59:23