Discussion:
[問題] 關於變數型態(新手)
(时间太久无法回复)
I'm not a circus monkey
2006-11-21 23:14:56 UTC
Permalink
想要問一下
int years2 = 70;
long secondsOfYears2 = years2 * 365 * 24 * 60 * 60;
System.out.println("七十年總共有 " + secondsOfYears2 + " 秒");

為什麼這樣子出來會爆啊?(我知道如果全部設成long就不會爆了)
可是years2不是70嗎
為什麼會跟結果有關係咧??
感恩!!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.233.131
練習多"多益"善
2006-11-21 23:38:36 UTC
Permalink
在做 (years2 * 365 * 24 * 60 * 60)這些運算時
都是使用int型態
算出來的結果是
2207520000 > Integer.MAX_VALUE = 2147483647
就差一點
所以(years2 * 365 * 24 * 60 * 60)中任意一個數值使用long
就不會爆


※ 引述《otsukaaitw (I'm not a circus monkey)》之銘言:
: 想要問一下
: int years2 = 70;
: long secondsOfYears2 = years2 * 365 * 24 * 60 * 60;
: System.out.println("七十年總共有 " + secondsOfYears2 + " 秒");
: 為什麼這樣子出來會爆啊?(我知道如果全部設成long就不會爆了)
: 可是years2不是70嗎
: 為什麼會跟結果有關係咧??
: 感恩!!

--
區分 dessert(甜點) 和 desert(沙漠) by axax
stressed 倒過來拼就是 desserts

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.229.166.240

继续阅读narkive:
Loading...