作者panger (超脫歸心)
看板C_Sharp
標題[問題] Double為什麼會得不到正確的值
時間Tue Jun 9 11:15:38 2009
double a=1 / 2;
a會等於0
若改成
double a=1;
a=a/2;
a就會等於0.5
為什麼會有這樣的問題阿?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.220.96
1F:→ qmomo:1/2會先被運算阿 而且會被當成整數 你打成1.0/2 就會正確了 06/09 11:19
2F:→ panger:那我如果是要兩個int相除,之後得到double要怎麼做呢? 06/09 11:27
3F:推 ianfang:整數和整數運算回傳還是整數 所以/會算到整數結束 06/09 11:28
4F:→ ianfang:((double)1)/2; 06/09 11:29
5F:推 maxi326:1F/2F 06/09 13:43
6F:→ panger:囧 一樓/二樓 會等於什麼??? 06/09 17:08
7F:推 ianfang:那個是代表1當成float啦... 你以為max是在跟你開玩笑嗎... 06/09 19:30
8F:推 cjcat2266:或者寫 1.0/2.0 06/09 21:38
9F:→ maxi326:F是指那數是浮點,類似0x??會變Hex的道理一樣 06/09 23:46
10F:→ maxi326:MSDN可以查一下,我記得除了F還有別的 06/09 23:47
11F:推 senjor:看到 一樓/二樓 我笑了 XDDD 06/11 18:23