我有号码2.50
存储在一个变量$price
我可以传递给一个函数,它识别值2.50
然而,当我尝试和它乘以2
我得到的答案4
。我认为PHP截断了原始值,然后我认为它可能会将它解释为字符串,因为我正在从XML文档中获取值,但manual表示如果它是字符串,它将正确识别它为2.50
。如果任何人都可以阐明这一点,我会非常感激。PHP中的数学错误 - 数字截断?
编辑:下面的代码我using-
$Price = new Prices();
// Traverse XML document
foreach ($simpleXML->product as $product) {
// Gather info from the product array
$price = $product->price;
$type = $product->type;
$price = $Price->getRealPrice($price, $type);
}
function getRealPrice($price, $type) {
// echo $price returns 2.50
// Switch statement on type
case 'Keychain':
return 1.7 * $price; // This returns 3.4
break;
}
即3.4被返回是真正的问题的事实,就好像它是做2 * 1.7
即使它应该是2.5
;我在原始示例中选择了2.5 * 2
,因为看到问题更明显。
更新: 我做1.8 * $price
之后,如果我赞同$price
与double
投我得到这个:2.503.6
这两个点有点反常我出去......
你能显示代码吗? – ghbarratt 2012-07-20 21:22:44
我不确定,但是您是否试图获取变量'$ price'的类型。正如@ghbarratt所说的,你能告诉我们吗? – Elwi 2012-07-20 21:30:01
@ghbarratt我编辑了我的问题以显示代码 – 2012-07-20 21:43:51