<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.lang.*" %>
<%
String a = "000000001";
String b = "000000002";
int aa = Integer.parseInt(a);
int bb = Integer.parseInt(b);
if(bb>aa){
  out.print(123);
}else{
out.print(456);
}
%>如上代码运行正常但是修改 a和b的初始值就会报错<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.lang.*" %>
<%
String a = "8000000001";
String b = "8000000002";
int aa = Integer.parseInt(a); 
int bb = Integer.parseInt(b);
//Integer aa = Integer.parseInt(a); 
//Integer bb = Integer.parseInt(b);//这样也报错
if(bb>aa){
  out.print(123);
}else{
out.print(456);
}
%>a和b是10位数 怎么才能正常比较
怎么解决求各位大哥帮忙,谢谢。

解决方案 »

  1.   

    报什么错啊?
    你try一下试一试try {
    String a = "8000000001";
    String b = "8000000002";
    int aa = Integer.parseInt(a); 
    int bb = Integer.parseInt(b);
    //Integer aa = Integer.parseInt(a); 
    //Integer bb = Integer.parseInt(b);//这样也报错
    if(bb>aa){
      out.print(123);
    }else{
        out.print(456);
        }
    }catch(Exception e){
    }
      

  2.   

    String a = "8000000001";
    String b = "8000000002";
    超过int 大小了换double
      

  3.   

    double 也不行啊 只要首位大于等于3就超过范围了··· 郁闷啊
      

  4.   

    这种纯java的东西就别再jsp里面折腾了吧
    应该是int放不下了 换long试试
      

  5.   

    int 范围为-2,147,483,648 到 2,147,483,647
    String a = "8000000001";
    String b = "8000000002";
    long aa = Long.parseLong(a);
    long bb = Long.parseLong(b);
    我这样是没报错的 换long吧少年
      

  6.   

    java的integer是32位的。范围在-2147483648 到2147483648 
    Integer.MAX可以查看它的范围
    你的8000000001超过的integer的存储范围了,造成内存溢出了
    如果确定了不超过18位的话可以先截取在比较
    if(integer.paresInt(aa.subString(0,9))>integer.paresInt(b.subString(0,9))){
      out.print("a大");
    }else if(integer.paresInt(aa.subString(0,9))<integer.paresInt(b.subString(0,9))){
      out.print("b大");
    }else if(integer.paresInt(aa.subString(9))>integer.paresInt(b.subString(9))){
      out.print("a大");
    }else{
      out.print("b大");
    }
      

  7.   

    INT类型最大值不能超过9位。改成如下:         String a = "8000000001";
            String b = "8000000002";
            
            long aa = Long.parseLong(a);
            long bb = Long.parseLong(b);
            
            if(bb>aa){
                System.out.println(bb+"");
            }else{
                System.out.println(aa+"");
            }