Re: [請益] 小數點的比較運算

看板PHP作者 (離)時間17年前 (2008/10/28 18:02), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串3/6 (看更多)
※ 引述《foxzgerald (O⊥M)》之銘言: : ※ 引述《chenlifu (離)》之銘言: : : 比較運算在有小數點的時候 : : 不知道該怎麼解決問題 : : 目前要把運算結果分開 : : ( a / b < 0.05 ) : : ( a / b >= 0.05 AND a / b < 0.1) : : ....這類狀況 : : 發現當 結果是0.0555的時候 : : 會被分類為 <0.05 : : 遇到這類運算的時候要怎麼辦? : : gettype檢查過值為double : : 查官網看到有寫用round : : 可是不成功..不太懂那意思 : : 可否請教版上大大 : : 感恩 : $a = 0.555; : $b = 10; : echo 'a/b=' . $a/$b . '<br />'; // 輸出 a/b : if ($a/$b < 0.05 ) { : echo "a/b < 0.5"; : } : if ($a/$b >= 0.05 AND $a/$b < 0.1) { : echo "a/b >= 0.05 AND a/b < 0.1"; : } : == : 你是這樣寫的嗎? if($TG_percent<0.05) { $TG000+=1; } elseif($TG_percent>=0.05 AND $TG_percent<0.1) { $TG005+=1; } elseif($TG_percent>=0.1 AND $TG_percent<0.15) { $TG010+=1; } ..... 大概是這樣 用比較運算去分類 然後記錄筆數 最後顯示筆數 不過經過簡單測試...發現算到0.0555這樣的結果的時候 歸類到<0.05 不知道為何? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.71.94.31

10/29 01:00, , 1F
感覺是之前/或之後的程式碼有邏輯上的問題...
10/29 01:00, 1F

10/29 01:00, , 2F
這種單純的運算出錯的機率微乎其微..不然就是你發現
10/29 01:00, 2F

10/29 01:01, , 3F
PHP 超級嚴重的 bug (不過我相信機率遠小於 0.0555%)
10/29 01:01, 3F
文章代碼(AID): #191kCPCE (PHP)
文章代碼(AID): #191kCPCE (PHP)