+ -
当前位置:首页 → 问答吧 → 有long与无long的差别为什么那么大呢??感谢。

有long与无long的差别为什么那么大呢??感谢。

时间:2011-10-10

来源:互联网

请问在24前面加一个转型成(long)为什么答案就不同呢??
System.out.println("1:"+(24 * 60 * 60 * 1000 * 365));
System.out.println("2:"+((long)24 * 60 * 60 * 1000 * 365));

1:1471228928
2:31536000000

感谢!

作者: zxcvbnm   发布时间: 2011-10-10

看来好像是因为24 * 60 * 60 * 1000 * 365已大於int的所能代表最大的range 了

作者: zxcvbnm   发布时间: 2011-10-10

http://caterpillar.onlyfun.net/Gossip/JavaEssence/PromotionCast.html

作者: caterpillar   发布时间: 2011-10-10

请参考 这里.
31536000000 是正确答案, 但是 int 类型无法表示这个数字, 应为 int 的 MAX=2147483647!

作者: puremonkey2006   发布时间: 2011-10-10

热门下载

更多