0

我有一个mysql表,只有一个寄存器,其中price字段是decimal(6,2)类型,值为60.35

考虑上面的代码:

$prices = mysql_query("SELECT id, price FROM products");
while ($pr = mysql_fetch_assoc($prices)) {
    $prics[$pr['id']]=$pr['price'];
    echo $pr['price'].' - '.$prics[$pr['id']]."\n";
}

输出不正确:

60.35 - 6

正确的是:

60.35 - 60.35

我在没有mysql查询的情况下尝试了同样的情况:

$var = array(60.35,'60.35',60);
$var2[0] = $var[0];
$var2[1] = $var[1];
print_r($var2);

它按预期工作:

Array
(
    [0] => 60.35
    [1] => 60.35
)

我该如何解决这个问题?

4

3 回答 3

0

问题线很可能

$prics[$pr['id']]=$pr['price'];

尝试强制类型如下:

settype($prics[$pr['id']], "float");
$prics[$pr['id']]=$pr['price'];
echo $pr['price'].' - '.$prics[$pr['id']]."\n";
于 2012-04-11T16:25:18.823 回答
0

我通过在使用之前初始化数组 var 解决了这个问题:

$prics = array();
于 2012-04-13T19:08:57.493 回答
0

我认为问题在于 PHP 将第二个浮点数转换为字符串,因为它被连接到一个字符串,而它认为第一个浮点数是浮点数

编辑 - 不,这很完美,它必须是别的东西

http://codepad.org/UbeJ20Wh

于 2012-04-11T15:31:02.107 回答