在java中不等于0.9 如果让其等于0.9 java处理如下: /** * 处理double类型的数值 保留小数点后几位 * @param args * num 要处理的数值 * offset 要保留的小数点位数 */ public static double round(double num,int offset){ String strNum=String.valueOf(num); if(!strNum.contains(".")){//如果没有小数点,就不存在精度问题,返回最接近的一位。 return Math.round(num); //返回最接近参数的 long。 } int off = strNum.indexOf("."); for(int i=0;i<offset;i++){//要保留的小数点后面有几位就乘以几个10; num*=10; } strNum=String.valueOf(num); String afterD=strNum.split("//.")[1]; afterD=strNum.split("//.")[1]; int n = Integer.parseInt(afterD.substring(0,1)); if(n>=5){// 四舍五入。 num+=1; }else{ } for(int i=0;i<offset;i++){ num/=10; } int zn=off+offset+1; String str = String.valueOf(num).substring(0, zn); num=Double.parseDouble(str); return num; }