java中long型的除法
java中 long t = System.currentTimeMillis(); System.out.println(t/60/60/24/365/1000);这个的答案就正确,而System.out.println(t/(60*60*24*365*1000));输出就错误. (long i1 = 60*60*24*365;
System.out.println(t/(i1*1000)); )这两句合起来也正确.为什么,怎么想都想不通 .求高手解答.谢谢了...
------最佳解决方案--------------------主要问题只有一个:
默认书写数字的方式下,数值是 int 型;
那么连续做乘法,是会溢出的
所以:
t/(60*60*24*365*1000)
应修改为(加个L):
t/(60
l*60*24*365*1000)
------其他解决方案--------------------楼上强大啊啊
------其他解决方案--------------------
首先谢谢你的回答.
像你这样改的确可以,但是我把整个(60*60*24*365*1000)写成long型为什么就不可以了?
------其他解决方案--------------------
还有那个好像也没有溢出,,int型最大可以存储2147483647这么多,而(60*60*24*365*1000)只有1471228928...
------其他解决方案--------------------(60*60*24*365*1000)只有1471228928.这个我也犯了同个错误.总之谢谢了,,现在懂了.