public class A{
      public static void mian(String[] args){
             double a,b,c;
             a=1.1;
             b=2.2;
             c=a+b;
             System.out.println(c);
      }
}输出结果是:3.3000000000000003
为什么会这样叻?

解决方案 »

  1.   

    上面main方法字打错了,,,无视这个吧
      

  2.   

    因为double的精确度的问题
    看看http://blog.csdn.net/xiaohai0504/article/details/6894440
      

  3.   

    http://wxinpeng.iteye.com/blog/1319813
    可以看看这个
    都乘10加完再除
      

  4.   

    http://blog.csdn.net/xiaozzhao/article/details/7450042,去这个网址看看,把里面的代码收藏一下,涉及到double类型运算的时候,调用一下就OK了!
      

  5.   

    可以说是精度问题.
    其实是因为计算机表示数字的时候都是用2进制表示的,在整数中用2进制表示都可以精确的表示十进制的数字,但是如果要表示小数的话2进制就不能精确的表示10进制的数字了,0.1(2) = 0.5(10), 0.01(2) = 0.25(10)
    表示0.1的话就不能精确的表示了如果要想精确的表示的话可以去用BigDecemal等几个类