PHP:转换为float时带小数的字符串带小数

时间:2012-05-17 14:17:18

标签: php string floating-point decimal

使用函数floatval()我尝试将带小数的字符串转换为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。

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

2 个答案:

答案 0 :(得分:0)

试试这个:

$reduction_calc = floatval($reduction_calc);

答案 1 :(得分:0)

您的$reduction$price字符串中可能包含前导/尾随空格 在脚本

之前添加此代码
$reduction = trim($reduction);
$price = trim($price);