请问各位高手:一个基础的表达式int 和long 取值范围问题,一个不容忽视的问题!!
dobad 2001-05-06 02:44:00 请看如下程序:
<%
int day=86400000;
int int_datetime=98;
java.util.Date currentDate=new java.util.Date();
out.println("<br>currentDate="+currentDate);
long currentTime=currentDate.getTime(); out.println("<br>currentTime="+currentTime);
long interval=day*int_datetime;
out.println("<br>Interval="+interval);
long contime=currentTime-day*int_datetime;
out.println("<br>contime="+contime);
out.println("<br><a href=scope.jsp>Refresh</a>");
//疑问:为什么int day=86400000 不正确,而 long day=86400000 正确
//对于 long interval=day*int_datetime;来讲,取值范围更大,
//然而day为int型,interval就为负值,而day为long时interval为正值
//int的取值范围是 -2147483648 to +2147483648
%>
敬请赐教!!!