从mySQL中读取一个浮点数

时间:2012-04-09 12:26:45

标签: php mysql floating-point mysql-error-1064

我有两个相同的浮点变量,我通过PHP检索它们并减去它们。结果等于(7.105427357601E-15)我试图改为加倍或小数,但没有一个有效。这是我在PHP中使用的:

$giftcard_balance = $giftcard['balance'];
$total = $product['price'];

$total -= $giftcard_balance;
echo $total;

这里没有显示0,而是显示(7.105427357601E-15)

任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

在处理价格和帐户余额时,您会发现DECIMAL(6,2)比FLOAT更容易处理。如果您在使用DECIMAL数据类型时遇到同样的问题,请发布一个具体示例。

使用round()或类似内容是一个非常糟糕的主意,因为它只是掩盖了问题,而不是修复它。

答案 1 :(得分:1)

为了消除浮动不准确性,您可以使用数字格式。

$a = 7.105427357601E-15;
$b = number_format($a, 2);
echo $a , "\n", $b , "\n";

答案 2 :(得分:0)

也许你正在寻找php intval function

或者round function