関数 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 に変わります。
理由を知っている人はいますか?前もって感謝します!