PHP:带有小数的字符串在转换为浮点数时去除小数


PHP: string with decimals strips decimals when converting to float

使用函数 floatval((,我尝试将带有小数的字符串转换为浮点数,但它没有给我想要的结果。代码如下:

   $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都转换为浮点数。这就是出错的地方

问题是,例如,当$reduction为 51 时,值 $reduction_calc 应该是 1.51 .由于某种奇怪的原因,在应用 floatval(( 后,变量 $reduction_calc 变成了 1。

有谁知道为什么?提前感谢!

试试这个:

$reduction_calc = floatval($reduction_calc);

您的$reduction$price字符串中可能有前导/尾随空格在脚本之前添加此代码

$reduction = trim($reduction);
$price = trim($price);