2

関数に渡すことができる2.50変数に格納された数値があり、値を認識しますが、それを掛けようとすると答えが得られます。PHP が元の値を切り捨てていると想定し、XML ドキュメントから値を取得しているため、それを文字列として解釈している可能性があると考えましたが、マニュアルには、それが文字列であるかのように正しく認識されると書かれています。誰かがこれに光を当てることができれば、本当に感謝しています。$price2.50242.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.52.5 * 2問題がより明白だったので、元の例を選択しました。

更新:のキャストで1.8 * $priceエコー すると、これが得られます: 2つのドットはちょっとびっくりします...$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 に答える