使用DecimalFormat格式化一下就好了。这是浮点数的精度问题,很正常。

解决方案 »

  1.   

    浮点数运算会出现这种问题   
    http://zhidao.baidu.com/link?url=nhCK8ZcJt_FRRVB9GVl-N4t_UuDEtnNr12RVzDSlJbPBEqm5IIoTaELxKXgxQIKGbs7Q-DqTRFwwRsz_mBfUrEPHZuBQ6fFxspWFYVESmr_
      

  2.   

    http://zhidao.baidu.com/link?url=nhCK8ZcJt_FRRVB9GVl-N4t_UuDEtnNr12RVzDSlJbPBEqm5IIoTaELxKXgxQIKGbs7Q-DqTRFwwRsz_mBfUrEPHZuBQ6fFxspWFYVESmr_http://
      

  3.   

    直接给楼主代码:
    package learning;import java.math.BigDecimal;public class Rec{ protected static BigDecimal  width; protected static BigDecimal  height; public static BigDecimal getPerimeter() { BigDecimal perimeter=width.add(height).multiply(new BigDecimal(2)); return perimeter; } public static BigDecimal getArea() { BigDecimal area=width.multiply(height); return area; }
    public static void main(String[] args) { //Rec R1=new Rec(); Rec.width=new BigDecimal("23.01"); Rec.height=new BigDecimal("27.02"); System.out.println("周长是 "+getPerimeter()); System.out.println("面积是 "+getArea()); }}