java解惑--------长整除

来源:互联网 发布:手机数据库查看器 编辑:程序博客网 时间:2024/04/28 07:52
public class LongDivision {
    public static void main(String[] args) {
        final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
        final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
 
        System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY);
        
        final long MICROS_PER_DAY1 = 24L * 60 * 60 * 1000 * 1000;
        final long MILLIS_PER_DAY1 = 24L * 60 * 60 * 1000;


        System.out.println(MICROS_PER_DAY1 / MILLIS_PER_DAY1);
    }

}


结果:

5
1000


1,问题在于MICROS_PER_DAY的计算溢出了。在其计算过程中,完全是以int运算来执行的,并且在计算完成之后,其结果才被提升为long。

解决方法是强制使用龙long运算


2,当操作很大的数字时,千万要堤防溢出。

原创粉丝点击