System.out.println("系统设置毫秒数"+30*86400000);
系统设置毫秒数-1702967296
这是什么原因呢
怎么解决呢
数据过大超出了int的范围,而导致溢出了,大数相乘不能直接用乘法。
可以用BigDecimal类封装的方法来执行。
楼上的都说正确了,整数int的范围如下: -2147483648~2147483647 而你的30*86400000 已经远远超过int 的范围了。就会变为负数。
你可以去了解下数据类型范围。
变成语言的基础知识,还是多看看书把
数据太大,直接结果用long就好
long a = 30;
long b = 86400000;
long c = (a *b);
System.out.println("系统设置毫秒数"+c);
java基础,整数型的范围
数字太大了,,导致首位为1,,,
像这种比较大的数字,,,用 BigInteger,java官方给出的类,,,相当好用