[問題] 轉型的問題
問題如下:
short s1 = 2;
short s2 = 5;
double dResult = s2 / s1;
cout << dResult << endl;
依個人的理解,s2 和 s1 運算的結果會先暫存起來,再assign給 dResult
所以 dResult 印出來會是 2,而不是 2.5
除非在 s2 前面加一個 (double) 將之轉型為double,才會是預期的結果
但是:
s1 = 1000;
s2 = 1000;
int nResult = s1 * s2;
cout << nResult << endl;
在這邊 s1 * s2 運算的結果暫存起來再assign給 nResult,應該會造成溢位
然後 nResult 印出來的結果是錯的(因為沒有先將short轉型成int)
可是 nResult 印出來的結果卻是 1000000,正確的結果
為什麼呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.232.124
→
08/19 00:03, , 1F
08/19 00:03, 1F
→
08/19 00:04, , 2F
08/19 00:04, 2F
→
08/19 00:06, , 3F
08/19 00:06, 3F
推
08/19 00:18, , 4F
08/19 00:18, 4F
→
08/19 00:20, , 5F
08/19 00:20, 5F
推
08/20 09:55, , 6F
08/20 09:55, 6F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章