<%@ 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位数 怎么才能正常比较
怎么解决求各位大哥帮忙,谢谢。
你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){
}
String b = "8000000002";
超过int 大小了换double
应该是int放不下了 换long试试
String a = "8000000001";
String b = "8000000002";
long aa = Long.parseLong(a);
long bb = Long.parseLong(b);
我这样是没报错的 换long吧少年
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大");
}
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+"");
}