0

関数 floatval() を使用して、10 進数を含む文字列を float に変換しようとしましたが、目的の結果が得られません。コードは次のとおりです。

    $price_calc = str_replace(',','.',$price);
    $reduction_calc = str_replace(',','',$reduction);
    $reduction_calc = '1.'.$reduction;      

    $price_calc = floatval($price_calc);
    $reduction_calc = floatval($reduction_calc);

    $oldprice = $price_calc * $reduction_calc;

このコードのチャンクは、価格 ($price) と削減率 ($reduction) を取得する、私が構築しているスクレーパーからのものです。その価格と割引から、古い価格を計算しようとしています。

計算を行う前に、$price と $reduction の両方を float に変換する必要があります。それが間違っているところです

問題は、たとえば $reduction が 51 の場合、値 $reduction_calc は 1.51 にする必要があることです。floatval() を適用した後、何らかの奇妙な理由で、変数 $reduction_calc が 1 に変わります。

理由を知っている人はいますか?前もって感謝します!

4

2 に答える 2

0

これを試して:

$reduction_calc = floatval($reduction_calc);
于 2012-05-17T14:26:31.907 に答える
0

$reductionまたは文字列に先頭/末尾のスペースが含まれている可能性があり$priceます。スクリプトの前にこのコードを追加してください

$reduction = trim($reduction);
$price = trim($price);
于 2012-05-17T17:39:03.893 に答える