我从MySQL获取(使用PHP PDO)一个值(以signed Float(7,2)格式存储)。
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'];
}
从数据库中获取此数据的最佳方法是什么? 我已经阅读了PHP中的浮点近似问题。 因此,我想将SQL更改为:
SELECT (hours * 100) as butSoExpensiveOnDatabase etc...
或在PHP中使用round
或number_format
。
你们会建议什么以及为什么?
更改表格结构不是一种选择!
(原因:旧的遗留代码我需要支持+没有时间+没有预算)
答案 0 :(得分:2)
你可以这样做
"SELECT round(hours, 2) FROM sample WHERE filter=?;"