2021_2_18_运算中数字溢出问题

时间:2021-02-19 13:53:01   收藏:0   阅读:0

运算中数字溢出问题

在运算中,可能会出现结果越界的情况,比如:

public class OverflowProblem {
    public static void main(String[] args) {
        int a = 10_0000_0000;
        int b = 20;
        int result = a*b;
        System.out.println(result);
    }
}


//   -1474836480

a乘以b的结果超过了int的边界,因此出现了溢出的情况。那么把result的类型改为long可以吗?

public class OverflowProblem {
    public static void main(String[] args) {
        int a = 10_0000_0000;
        int b = 20;
        long result = a *b;
        System.out.println(result);
    }
}


//   -1474836480

结果依然不行,那么如何才能解决这个问题呢?

public class OverflowProblem {
    public static void main(String[] args) {
        int a = 10_0000_0000;
        int b = 20;
        long result = (long) a * b;
        System.out.println(result);
    }
}


//   20000000000

只要在运算中对其中一个对象强制转换为long类型即可。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!