日期:2014-05-20  浏览次数:20663 次

double的小数问题
如果是  1/6  就是保留两位小数输入 0.17
        1/10 就是原样输入 0.1
        1/0 就是0.0



不知道怎么弄    求解答
double 小数

------解决方案--------------------

public double getResult(double a,double b){
if(b==0)
return 0;
String rStr = a/b+"";
int pointIdx = rStr.indexOf(".");
if(pointIdx>0 && (pointIdx+2)<rStr.length()){
double ret = Double.parseDouble(rStr.substring(0,pointIdx+3));
return Integer.parseInt(rStr.substring(pointIdx+3,pointIdx+4))<5?ret:ret+0.01;
}
return a/b;
}

------解决方案--------------------
楼上正解....................
------解决方案--------------------
DecimalFormat df = new DecimalFormat("#.##");
System.out.println(df.format(1/6.0));
System.out.println(df.format(1/10.0));
前2个可以通过上面的方法获取  第3个会抛异常  只能自己写方法判断  比如2楼写的