遇到的int型数字越界的情况

来源:互联网 发布:java list清空 编辑:程序博客网 时间:2024/06/08 07:34

在做一个需求时,需要循环减去24*60*60*1000*30,在实际测试过程中当最后的数字30到25时就出现了错误,减的结果比减之前的数还大,检查了下发现在到25时整个减数的数值变为负数了,负负得正,减变成了加。


造成这种情况的原因是当最后的数字达到25时,整个常数的数字位数已超过了int型数据类型的最大位数,变成了负数。这时如果可以预见自己最大所需的数字是多少可以合理对这个数字表达式进行强转,转成位数更大的数据类型,如:(long)24*60*60*1000*30 即可

原创粉丝点击