-1

您好
,我正在尝试从我的浮点值中删除前导零,但不能这样做。
我有一个数字012.36需要转换为12.36. 我曾经ltrim删除前导零,但是当我使用ltrim变量时,它被更改为字符串,我不能将它用作数字。
当我再次尝试将其转换为浮点值时,(float)或者floatval它再次向该值添加前导零,就像012.36
我知道这是一个简单的问题但无法解决它一样。请帮助..
这是代码。我有一个返回值的函数,我在变量中使用了它。
这是我的功能

public function getCartPercentShippingRate(){
        $shippingRateCollection = $this->getShippingMethodForShippingCountry();
        $shippingRate = 0;
        foreach ($shippingRateCollection as $shipping){
            $shippingRate = $shipping->getShippingRate();
        }
        $quote=Mage::getSingleton('checkout/session')->getQuote();
        $totals = $quote->getSubtotal();
        $shippingPercent = $totals * $shippingRate/100;
        return $shippingPercent;
    }
$price = $shippingRateModel->getCartPercentShippingRate();

当我使用echo $price它回显变量时,会显示012.36.

当我使用echo $price = (float)($price);它仍然显示012.36.
我试过这个。$newprice = ltrim($price, '0');它显示$newprice12.36。但是当我在我的另一个函数中使用它来设置这样的价格时,$method->setPrice($newprice);它显示我 0 作为新价格。
如果我使用像 Is 这样的静态值$method->setPrice(12.36);,则将新价格显示为 12.36。

4

3 回答 3

7

试试这个可能会对你有所帮助......首先将值转换为字符串并执行此操作。

$str = ltrim($str, '0');

例子

$val = 012.36;
$val = ltrim($val, '0');
echo (float) $val;
于 2013-10-31T05:07:23.600 回答
0

我不确定你是如何尝试的。以下代码给了我想要的东西

$num = 012.36;
echo (float)$num; // outputs 12.36
于 2013-10-31T04:42:24.687 回答
0
use (float) 

这是演示

演示

于 2013-10-31T04:48:45.870 回答