2

我将数字2.50存储在一个名为的变量$price中,我可以将其传递给一个函数,它可以识别该值,2.50但是当我尝试将它与它相乘时,2我得到了答案4。我假设 PHP 正在截断原始值,然后我认为它可能会将其解释为字符串,因为我正在从 XML 文档中获取值,但手册说它将正确识别它,就2.50好像它是一个字符串一样。如果有人能对此有所了解,我将不胜感激。

编辑:这是我正在使用的代码-

$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呼应,我会得到这个:这两个点有点吓到我了......$pricedouble2.503.6

4

2 回答 2

2

在函数的开头使用floatval this 将字符串解析为浮点数

function getRealPrice($price, $type) {
   $price = floatval($price);
于 2012-07-20T22:19:21.710 回答
0

这是一种疯狂的猜测,但您应该确保该值是“2.50”而不是“2,50”。

于 2012-07-20T21:31:03.600 回答