double functionDevelopScore = this.reserveDoubleToTwo((24 + 0) * 5 / 100);//下面方法用于保存两位小数
public double reserveDoubleToTwo(int inputInt) {
double returnDbl = 0.00;
DecimalFormat df = new DecimalFormat("0.00");
returnDbl = Double.parseDouble(df.format(inputInt));
return returnDbl;
}上述算出来的结果应该是1.20,但是结果却是1.0,真是郁闷噢
24*5/100 = ?

解决方案 »

  1.   

    double functionDevelopScore = this.reserveDoubleToTwo((double)(24 + 0) * 5 / 100);//下面方法用于保存两位小数
    public double reserveDoubleToTwo(double inputInt) {
    double returnDbl = 0.00;
    DecimalFormat df = new DecimalFormat("0.00");
    returnDbl = Double.parseDouble(df.format(inputInt));
    return returnDbl;
    }要转型
      

  2.   

    melas()的方法对。或者
    double functionDevelopScore = this.reserveDoubleToTwo((24 + 0) * 5 / 100.0);//下面方法用于保存两位小数
    public double reserveDoubleToTwo(double inputInt) {
    double returnDbl = 0.00;
    DecimalFormat df = new DecimalFormat("0.00");
    returnDbl = Double.parseDouble(df.format(inputInt));
    return returnDbl;
    }
      

  3.   

    24.0*5/100 = 1.2
    +
    reserveDoubleToTwo(double inputInt)我想.....
      

  4.   

    (24 + 0) * 5 / 100 返回double型
    reserveDoubleToTwo(int inputInt)方法入口参数为int型
    所以转型时造成小数位丢失,具体是截断还是四舍五入没有研究过
      

  5.   

    传进去的参数是整形的,结果当然为1.0
    melas() 和tonyzhangcn(东尼) 的方法都很对,注意传参一定要是double型的