注意导入包,我也不知道是否正确。
答案与正确答案有点出入;应该是 数字转换时出现的误差吧?
2010-09-29 20:24

2010-09-29 20:41
程序代码:public static void main(String[] args) {
BigDecimal x=new BigDecimal("-2.1");
BigDecimal value=new BigDecimal("0");
BigDecimal item=new BigDecimal("1.0");
BigDecimal numerator=new BigDecimal("1.0");
BigDecimal denominator=new BigDecimal("2.0");
int j=2;
BigDecimal s=new BigDecimal("0");
BigDecimal out=new BigDecimal("1e-5");
int i;
while (item.abs().compareTo(out)>=0) {
value = value.add(item);
numerator = numerator.multiply(x).multiply(x).multiply(new BigDecimal("-1.0"));
s = new BigDecimal("1.0");
for (i = 1; i <= j; i++)
s = s.multiply(new BigDecimal(i));
j = j + 2;
denominator = s;
item = numerator.divide(denominator,BigDecimal.ROUND_HALF_EVEN);
}
System.out.println(value.toString());
System.out.printf("%.5f", value);
}
2010-09-29 22:44