long t = 3043151112l;
java中整数常量默认为int形,所以要加上"L"来转换。

解决方案 »

  1.   

    int型是32位的,范围是-2147483648to2147483647,你赋的值超出了范围,由long向int转换时会产生数据丢失。所以报错
      

  2.   

    哦。不是因为转换的问题,是farawayzheng_necas(遥远)说的那个原因。
      

  3.   

    对啊,楼上的说的完全正确啊。呵
    java里一共有三个需要假后最的,
    float型,long型,double型
      

  4.   

    怎么加"L"来转换,我是这样做的如下:我已经把"l"转成"L"但还是出错(我想知道long转成int到底行不行是大于32的数)
    wang1.java:80: integer number too large: 3043151112
                Long t=3043151112;
                       ^
    wang1.java:81: inconvertible types
    found   : java.lang.Long
    required: int
                             int t1 = (int )t;
                                            ^
    2 errors
      

  5.   

    long t = 3043151112L; //L小写也可以
    int t1 = (int )t;
    System.out.println(t1);
    行是行,就是得到的是负数
      

  6.   

    小弟现在做短信联通的但就在这出现问题,
    他规定必须为int但必须为3043151112这个数,
    请问各位有什么办法,
    如果出负数肯定是不行的
      

  7.   

    3043151112已经超过Integer.MAX_VALUE了,所以不能用int存。
    你用这个数干什么用啊,如果是向网络发数据,就不用管负数还是正数,只要服务端解析成正数就可以了。