Re: [語法] 在寫程式時 遇到將浮點數轉換成整數的問題

看板C_and_CPP作者 (艾斯寇德)時間14年前 (2009/09/15 21:52), 編輯推噓4(408)
留言12則, 4人參與, 最新討論串2/7 (看更多)
----------------------------------------------------------------- 當然是有理由的! 如果今天某人搭乘距離是1.850公里 原題目 就你所寫的 ============================================================================ 假定計程車在1.5公里內, 車資都是70元; 超過1.5公里後, 每0.3公里, 加收5元 (不足0.3公里, 仍以0.3公里計) 請輸入搭乘里程數(以公里計)(可精確到小數點第三位,即可精確到公尺)(ex:1.853公里) 求算對應的車資為多少. ============================================================================ 那1.850公里減掉基本運費的里程數(1.5公里)為 1.85-1.5=0.35(公里) 又因為每0.3公里加收五元(不足0.3公里以0.3公里計) 而(0.35/0.3)*5=1.1666666.. . 這裡是 1.1666666個 0.3公里,他確實>=1,因此滿足`0.3公里的條件` 1.16666...*5= 5.83333333(元) 這樣會使得總運費只有70+5.83333333= 75.83333333 捨去小數得到的只是75元 根本就嚴重計算錯誤 本來就應該是75.833了不是? 正確算法應該是遇到 0.35/0.3=1.1666666...小數點後面有小數時 就要無條件進位讓1.1666666....變成2 原題目你所po的部份沒有顯示這玩意啊,你應該只是為了反駁而寫這個解釋吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.114.2

09/15 21:55, , 1F
其實他有寫到模擬計程車車車費計算這件事....
09/15 21:55, 1F

09/15 21:56, , 2F
不過他說的計算錯誤是有語病, 數學上這樣計算是正確的,
09/15 21:56, 2F

09/15 21:57, , 3F
只是這樣的算法沒有meet題目的要求; 所以他需要的計算
09/15 21:57, 3F

09/15 21:57, , 4F
s大似乎沒看清楚題目? 只是原po程式中的算式與邏輯寫錯罷了
09/15 21:57, 4F

09/15 21:57, , 5F
是每次+5一階~~梯型式的小數進位法.
09/15 21:57, 5F

09/15 21:59, , 6F
話說pttfly在原文推的那件事更值得注意, t的init這個XD
09/15 21:59, 6F

09/15 22:15, , 7F
那個其實是新手常見錯誤
09/15 22:15, 7F

09/15 22:15, , 8F
誤以為 C 是像 excel 一樣可以先給公式然後自動計算
09/15 22:15, 8F

09/15 22:16, , 9F
然後就算他有正確求出 t 來 個人以為那個 == 還是很危險...
09/15 22:16, 9F

09/15 22:23, , 10F
科科~~終於有人提到floating point的 == compare了XD
09/15 22:23, 10F

09/15 22:41, , 11F
歐 原來不足0.3以0.3計的意思是這樣啊
09/15 22:41, 11F

09/15 22:42, , 12F
那我這篇就變成來亂的了XDrz ...
09/15 22:42, 12F
文章代碼(AID): #1AhvmlNm (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AhvmlNm (C_and_CPP)