实际问题:整数*(28.0/30)的问题?求教
得到的结果是 70.0
难道是Java就这样?应该是得到74.66这样子才对啊!类型:Integer*(Float/30)
请大鸟赐教,如何得到74.66

解决方案 »

  1.   

    对,Integer是80,可乘出来的结果却是70.0
    难道得用BigDecimal?用下面的方法将80和(28/30)来相乘,结果也是70.00000029802322:public static double multiply(double v1, double v2)
    {
        BigDecimal b1 = new BigDecimal(Double.toString(v1));
        BigDecimal b2 = new BigDecimal(Double.toString(v2));
        return b1.multiply(b2).doubleValue();
    }
      

  2.   

    我的sun java算的是74.66666。不知道LZ的java是哪家的java
      

  3.   

    直接用80*(28.0/30)得出来的结果是74.66664可是一用变量 butie*(28.0/30)出来就是70.0,其中butie无论是Integer还是int。
      

  4.   

    哦,我print一下,butie是75,不是80,可能是个误会谢谢诸位