[問題] c++如何降低精準度

看板C_and_CPP作者 (挑戰在我就在)時間14年前 (2011/07/18 02:43), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/2 (看更多)
我想讓123.754645 和123.754689變成一樣大有什麼方法? 因為我在做ACM11001有一個地方是要判斷2數是否相等 用uvatoolkit測試發現它好像都會把很接近的數視為一樣 請問有什麼方法能降低精準度? 試過setprecision 但是setprecision好像只有對output有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.48.188

07/18 02:47, , 1F
if (fabs(x - y) < 0.01) 用類似這樣的方法
07/18 02:47, 1F

07/18 02:48, , 2F
兩個數相減的絕對值夠小的話就當作是一樣的數值
07/18 02:48, 2F

07/18 10:08, , 3F
sprintf....
07/18 10:08, 3F

07/18 15:59, , 4F
我好奇 sprintf 怎麼做..
07/18 15:59, 4F

07/18 16:24, , 5F
輸出到字串呀 再用字串比較就好了
07/18 16:24, 5F

07/18 16:39, , 6F
原來如此,謝謝解惑 *^_^*
07/18 16:39, 6F

07/18 17:15, , 7F
推 spintf()
07/18 17:15, 7F

07/18 17:15, , 8F
sprintf() //少了r
07/18 17:15, 8F

07/20 18:21, , 9F
一樓的解法比較OK,浮點數的相等很多是這樣作的。
07/20 18:21, 9F

07/20 19:06, , 10F
其實我也是在這個板上學到的XD
07/20 19:06, 10F
文章代碼(AID): #1E8orHwH (C_and_CPP)
文章代碼(AID): #1E8orHwH (C_and_CPP)