浏览 1805 次
锁定老帖子 主题:长整除
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-10   最后修改:2009-02-13
java puzzle里的一个例子,有点意思,这个方法会打印什么结果?

public void longDivsion(){
   long micros = 24 * 60 * 60 * 1000 * 1000;
   long millis = 24 * 60 * 60 * 1000;
   System.out.println(micros/millis);
}


输出的结果是5!
long micros = 24 * 60 * 60 * 1000 * 1000,等号右边得到的结果为整型然后转换成long并赋值给micros,如果得到的结果超过整型的范围,那么在转化成long时必然是个错误的结果。

正确的写法是:
                     long micros1 = 24L * 60 * 60 * 1000 * 1000;
long millis1 = 24L * 60 * 60 * 1000;
System.out.println(micros1/millis1);
   发表时间:2009-02-11  
认为结果是1000的,很付责任的告诉你,不对!!!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics