long b=30*24*60*60*1000;b的结果值为-1702967296 而不是预期的2592000000,这是为什么?
解决方案 »
- JOptionPane问题
- java如何连接linux,模拟发送命令,接受命令返回的字符串
- static与static final的区别
- 实在无法理解该程序的运行过程,谁能帮助分析一下?
- newbie 怎么获得一个对象数组的某属性
- java中如何取得事件源的坐标!
- 面试用Swing开发的程序员,他们会问什么样的技术上的问题呀
- 关于SimpleDateFormat.parse的一个处理错误的。
- 大家帮我看看这个程序?里面有两个地方看不懂?:(
- 请教大侠,我是JAVA初学者,请问哪里有JBuilder的中文书下载?
- 谁能介绍几个关于JSP方面的优秀站点
- 如果想将一个javabean的内容,通过form提交给其他页面(或者struts框架的Action)该怎么做?
结果溢出后再转为long
30*24*60*60*1000;这是按照int数相乘,结果超出了int表示的范围,发生了上溢出,所以结果变成了负数,然后再将结果存放到long型变量中
改正的方式:long b=30*24*60*60*1000L;
long b=(long)30*24*60*60*1000;
是这样转的吧
还是用long b=30L*24*60*60*1000;sun中就有这个个代码(BigInteger类中的
3L*5*7*11*13*17*19*23*29*31*37*41