2013-05-15 39 views
0

我正在從MySQL獲取一個值(以有符號Float(7,2)格式存儲)(使用PHP PDO)。MySQL Float(7,2)到PHP Float

Result 
===================== 
Database = 8.9 //correct value 
PHP = 8.8999996185303 //fetch from PHP PDO 

示例代碼:

$qry = 'SELECT hours FROM sample WHERE filter=?;'; 
$stmt = $db->prepare($qry); 
$stmt->execute(array($filter)); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    echo $row['hours']; 
} 

什麼是獲取從DB這個數據最好的方法是什麼? 我已閱讀了PHP中的浮點近似問題。 因此,我在想或許改變SQL成類似:

SELECT (hours * 100) as butSoExpensiveOnDatabase etc... 

或者使用round或PHP number_format。 你們會提出什麼建議?爲什麼?

更改表格結構不是一個選項!

(原因:舊的遺留代碼,我需要支持+沒有時間+沒有預算)

回答

2

你可以做到這一點

"SELECT round(hours, 2) FROM sample WHERE filter=?;" 
+0

這個作品,但是,這不是有一個PHP的解決方案,我不喜歡讓MySQL服務器進行大量計算 – Terence

+0

@Terence在MySQL中使用數學函數要比使用PHP執行數學函數要好。 – hjpotter92