public class Test {
public static void main(String[] args) {
long 一天的微秒数 = 24 * 60 * 60 * 1000 * 1000;
System.out.println(一天的微秒数 );
}
}
答案:
运算的结果超出了int型的范围,造成溢出。
因为形如24这样的数字,在jvm认为是int型的,int型运算溢出之后的值被转换为long型赋给 “一天的微秒数”。
正确的写法应该是:
public class Test {
public static void main(String[] args) {
long 一天的微秒数 = 24L * 60L * 60L * 1000L * 1000L;
//long 一天的微秒数 = 24L * 60* 60 * 1000 * 1000; //也ok
System.out.println(一天的微秒数 );
}
}
本文探讨了Java中处理时间单位转换时遇到的整型溢出问题,并提供了解决方案。通过将运算中的整型数字改为长整型,避免了溢出错误。
925

被折叠的 条评论
为什么被折叠?



