System.out.print(new Long(5 * 7 * 24 * 60 * 60 * 1000));
这个得到的值为什么是负值:-1270967296

解决方案 »

  1.   

    溢出了1
    long的范围是: -2的63此方 到 2的63此方减一!
      

  2.   

    System.out.print(new Long(5 * 7 * 24 * 60 * 60 * 1000));--------->>System.out.print(new Long(5 * 7 * 24 * 60 * 60 * 1000L));
      

  3.   

    楼上兄弟,请看:
     public static final long MAX_VALUE 9223372036854775807l 
     public static final long MIN_VALUE -9223372036854775808l 
     
    263-1=9223372036854775807l 这个值远远大于我的值啊。
    那你请看这个:System.out.print(new Long(10 * 7 * 24 * 60 * 60 * 1000));
    得出的值是:1753032704
      

  4.   

    恩,问题解决拉,谢谢兄弟:hujiaboy
    System.out.print(new Long(5 * 7 * 24 * 60 * 60 * 1000));--------->>System.out.print(new Long(5 * 7 * 24 * 60 * 60 * 1000L));
      

  5.   

    5 * 7 * 24 * 60 * 60 * 1000 >int型的范围 2.15*10^9
    长整型需要在数后加L来标识(就像16进制要加前缀0x),否则就默认为整型了,所以溢出了