看板 PHP 關於我們 聯絡資訊
※ 引述《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
foxzgerald :感覺是之前/或之後的程式碼有邏輯上的問題... 10/29 01:00
foxzgerald :這種單純的運算出錯的機率微乎其微..不然就是你發現 10/29 01:00
foxzgerald :PHP 超級嚴重的 bug (不過我相信機率遠小於 0.0555%) 10/29 01:01