[問題] Double為什麼會得不到正確的值

看板C_Sharp作者 (超脫歸心)時間15年前 (2009/06/09 11:15), 編輯推噓5(506)
留言11則, 6人參與, 最新討論串1/2 (看更多)
double a=1 / 2; a會等於0 若改成 double a=1; a=a/2; a就會等於0.5 為什麼會有這樣的問題阿? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.220.96

06/09 11:19, , 1F
1/2會先被運算阿 而且會被當成整數 你打成1.0/2 就會正確了
06/09 11:19, 1F

06/09 11:27, , 2F
那我如果是要兩個int相除,之後得到double要怎麼做呢?
06/09 11:27, 2F

06/09 11:28, , 3F
整數和整數運算回傳還是整數 所以/會算到整數結束
06/09 11:28, 3F

06/09 11:29, , 4F
((double)1)/2;
06/09 11:29, 4F

06/09 13:43, , 5F
1F/2F
06/09 13:43, 5F

06/09 17:08, , 6F
囧 一樓/二樓 會等於什麼???
06/09 17:08, 6F

06/09 19:30, , 7F
那個是代表1當成float啦... 你以為max是在跟你開玩笑嗎...
06/09 19:30, 7F

06/09 21:38, , 8F
或者寫 1.0/2.0
06/09 21:38, 8F

06/09 23:46, , 9F
F是指那數是浮點,類似0x??會變Hex的道理一樣
06/09 23:46, 9F

06/09 23:47, , 10F
MSDN可以查一下,我記得除了F還有別的
06/09 23:47, 10F

06/11 18:23, , 11F
看到 一樓/二樓 我笑了 XDDD
06/11 18:23, 11F
文章代碼(AID): #1ABTFTUX (C_Sharp)
文章代碼(AID): #1ABTFTUX (C_Sharp)