我有一个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
)
我该如何解决这个问题?
答案 0 :(得分:0)
答案 1 :(得分:0)
问题可能是
$prics[$pr['id']]=$pr['price'];
尝试强制类型:
settype($prics[$pr['id']], "float");
$prics[$pr['id']]=$pr['price'];
echo $pr['price'].' - '.$prics[$pr['id']]."\n";
答案 2 :(得分:0)
我通过在使用之前初始化数组var来解决了这个问题:
$prics = array();