MySQL Float(7,2)到PHP Float

时间:2013-05-15 12:45:08

标签: php pdo floating-point

我从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中使用roundnumber_format。 你们会建议什么以及为什么?

更改表格结构不是一种选择!

(原因:旧的遗留代码我需要支持+没有时间+没有预算)

1 个答案:

答案 0 :(得分:2)

你可以这样做

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