为什么double d = Double.parseDouble("52.54");是正确 而int i = Integer.parse.Int("52.54"); 却不正确,有哪位能给指点下迷津。

解决方案 »

  1.   

    在java中int型是32位的而double是64位的,所以不可以把double型的数转换成int型,反之可以的。
      

  2.   

    int number = (int)(Double.parseDouble(52.54));
      

  3.   

    抛出NumberFormatException.  Integer.parse.Int()只能转换整形的..
      

  4.   

                    String str = "12.3";
                    double i = Double.parseDouble(str);
                    int j = (int)i;
    这样吧
      

  5.   

    Java中,从小的范围转换到大的范围时时自动的,
    反之则需要强制类型转换~~~
      

  6.   

    可以看一下Integer.parseInt("52.54") 的实现原理自然就出来了。
      

  7.   

    int 向double转换是小空间向大空间转换,需要强制转换
      

  8.   

    应该是parseInt把中间那个点去掉试试呢???
      

  9.   

    强制转换 int i = (int)52.54; 
      

  10.   

    就是这个意思,大转小可自动转换,小转大则需强制转换,有可能会丢失数据,如int i = (int)52.54; 就会丢失数据(丢失小数位,注意不会四舍五入)!!其实小向大转有时也会不准确!
      

  11.   

    谢谢各位,本人菜鸟一个,不过大家的解答倒是看明白了 ,THanks!!呵呵