请问int型数据跟folat 型数据是怎么进行相乘的。  我用5.2*444 =2308.798  5.2*333=1731.6  像我这样的问题要怎么样解决?

解决方案 »

  1.   

    使用BigDecimal来计算,如果需要精确结果的话.
      

  2.   

    如果不要求精确度直接相乘也可以,但是结果是float类型。
      

  3.   

    这是计算机本身的01代码机制造成的精度问题,看看这个最明显System.out.println(3*0.7);
    其结果是2.0999999999999996
    JAVA中为了解决该精度问题需使用BigDecimal类进行高精度计算,例如:
    System.out.println(new BigDecimal(0.7).multiply(new BigDecimal(3)).floatValue());
      

  4.   

    兄弟们,在类或者方法前加上strictfp