long可以表示2的63次方 是一个很大的数据哦 怎么可能超界

解决方案 »

  1.   

    用BigInteger ,方法如下  :BigInteger a = new BigInteger("10000000000000000000");
    BigInteger b = new BigInteger("3");
    BigInteger c = a.multiply(b);
    System.out.println(c.toString());得到 : 30000000000000000000
      

  2.   

    呵呵,赶快给sun法邮件。说不定你可以获得奖金哦。
      

  3.   

    原因在这里```这个30*24*60*60*1000是用int计算的```算出一个越界的数再给的long``可以这样``long l = (long)24*60*60*1000*30;```就可以得到2592000000
      

  4.   

    pioneer_csdn() 是对的。Java在运算的时候会默认数字是int或double型。不过他那样的写法比较。正确的是long l = 24*60*60*1000*30l;即在其中一个数上标上l-----------基础知识
      

  5.   

    楼主如果需要按照long类型计算,需要在数字后加上l,不然整数默认就会按照int计算
    而浮点类型float,double,系统默认是double的,如果要使用float,那需要在数字后加上f。