使用函数 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);