[問題] 浮點數的誤差嗎??
小弟目前遇到的問題是
double xxx;
然後xxx這個變數在程式中會給他一個值, 我cout出來看到的是0.875
而在程式中我想測試此變數取小數三位後能不能被0.005整除, 因此我做了下面的動作
if( ((int)(xxx*1000.0)) % 5 != 0 ) ....
結果發現 0.875 不能被0.005整除 理論上 應該是 875/5 = 175..0
因此我cout了下面的東西:
((int)(xxx*1000)/5) = 174
((int)(xxx*1000)%5) = 4
(xxx*1000)/5 = 175
好像在取整數的過程 875 變成 874.... 我用printf顯示到小數第六位也是8.750000*e-1
有人可以替小弟解答嗎?? 萬分感激
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.187.225
※ 編輯: linkone 來自: 140.116.187.225 (12/04 14:08)
→
12/04 14:21, , 1F
12/04 14:21, 1F
→
12/04 14:24, , 2F
12/04 14:24, 2F
→
12/04 14:25, , 3F
12/04 14:25, 3F
→
12/04 14:27, , 4F
12/04 14:27, 4F
→
12/04 14:27, , 5F
12/04 14:27, 5F
→
12/04 16:34, , 6F
12/04 16:34, 6F
→
12/04 18:08, , 7F
12/04 18:08, 7F
推
12/04 19:30, , 8F
12/04 19:30, 8F
→
12/04 19:37, , 9F
12/04 19:37, 9F
→
12/04 19:39, , 10F
12/04 19:39, 10F
→
12/04 19:41, , 11F
12/04 19:41, 11F
推
12/04 19:41, , 12F
12/04 19:41, 12F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章