作者bztfir (蝴蝶)
看板b99902HW
標題[問題] 關於pow的問題
時間Sun Oct 10 11:07:45 2010
在做這禮拜計程作業的時候我碰到了一個大麻煩
n = (int)pow(10,2)
n print出來會是99
有人知道為什麼的可以救救我嗎Orz...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.103.249
1F:→ LPH66:整數次方請自己寫 for 乘 否則會被浮點數精確度整到 10/10 11:21
2F:→ LPH66:記得使用浮點數及其相關函式請一定記得浮點數精確度誤差 10/10 11:22
3F:→ bztfir: 這是啥?^^^^^^^^^^^^^^^^ 10/10 11:23
4F:推 s864372002:(int) (pow(10,2) + 1e-9) 試試看:) 10/10 11:24
5F:→ s864372002:就是99.99999999999999會被無條件捨去到99 10/10 11:24
6F:→ s864372002:浮點數沒辦法完全精確地表示出所有數字,會有誤差。 10/10 11:27
8F:→ LPH66:我是忘記現在計概會不會教 IEEE754 了啦... 10/10 11:29
9F:→ s864372002:1e-9 就是 10^(-9) 稱為eps,想像一下ε是做什麼的XD。 10/10 11:30
10F:推 s864372002:B98沒有,我們課本上的浮點數是神祕的東西,非IEEE標準 10/10 11:34
11F:推 avesta:....可以詳細說明一下完整的程式碼嗎 10/10 13:05
12F:→ avesta:用Dev-C++測試不管用cout還是printf都是100 10/10 13:06
13F:→ avesta:而且照理說fint(floating-point int)在2^53以下精確度應該 10/10 13:10
14F:→ avesta:都和int一樣吧 10/10 13:10
15F:→ JT0109:他上次害我困擾很久= = 最後乾脆自己FOR了... 10/10 14:56
16F:推 jimmyken793:浮點數誤差 10/10 21:57
17F:→ bill8124:在做這禮拜計概作業?????????? 哪裡需要用到??? 10/10 23:20
已改正
18F:推 ianlini:他發太多文筆誤 應該是計程 10/10 23:26
19F:推 ianlini:那題用陣列似乎比較好寫... 10/10 23:30
※ 編輯: bztfir 來自: 203.73.103.249 (10/10 23:54)
20F:推 pf5179:陣列可以吃嗎? 10/11 01:03