作者chenlifu (離)
看板PHP
標題Re: [請益] 小數點的比較運算
時間Tue Oct 28 18:02:00 2008
※ 引述《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