四舍五入的问题,有这么难吗?
flai 2005-09-19 03:55:47 目的:
四舍五入,保留两个小数点
定义方法一:
public static double round(double value,int n){
String strFormat="#0.";
for(int i=0;i<n;i++)
{
strFormat += "#";
}
DecimalFormat df = new DecimalFormat(strFormat);
String strNew = df.format(value,new StringBuffer(),new FieldPosition(0)).toString();
return Double.parseDouble(strNew);
}
该函数对于绝大多数的处理结果都是对的,但是有一些例外,如
System.out.println(Class1.round(7.985,2));
输出结果为: 7.98
System.out.println(Class1.round(103.805,2));
输出结果为: 103
方法二:
public static double round(double value,int n){
return new BigDecimal(var).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
}
该函数对于绝大多数的处理结果都是对的,但是有一些例外,如
System.out.println(Class1.round(7.055,2));
输出结果为: 7.05
走过路过的大侠,帮我看看这是为什么?