2013-10-31 145 views
-1

你好
我想從我的浮點值刪除前導零,但不能這樣做。
我有一個號碼012.36,我需要將其轉換爲12.36。我已經使用ltrim刪除前導零,但是當我使用ltrim時,該變量更改爲字符串,我不能將其用作數字。
當我再次嘗試將其轉換使用(float)floatval再次增加了一個前導零像012.36
價值我知道這是一個簡單的問題,但不能得到解決呢浮動值。請幫忙..
這裏是代碼。 我有一個函數,它返回值,我用它在一個變量。
這裏是我的職責,如何從浮點值中刪除前導零在PHP

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');它將$newprice顯示爲12.36。但是當我在另一個功能中使用它來設置這樣的價格時,$method->setPrice($newprice);它將我顯示爲0作爲新價格。
如果我使用如$method->setPrice(12.36);的靜態值顯示新的價格爲12.36。

+2

PHP沒有這樣的表現。請張貼一些代碼。 – 2013-10-31 04:41:32

+0

你確定它不是一個八進制數? – Phil

+0

是的,我確定..它是一個簡單的數字。 –

回答

0
use (float) 

這裏是演示

DEMO

0

我不知道你是如何嘗試過它的。下面的代碼給了我什麼都想

$num = 012.36; 
echo (float)$num; // outputs 12.36 
+0

是的,我有,它仍然是012.36 .. –

+0

@JaiminSutariya,依然?這是什麼意思? – sectus

+0

@sectus,它不會刪除前導零。它顯示012.36。 –

5

試試這個可能它會幫助你...先轉換成數值字符串,做到這一點。

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

$val = 012.36; 
$val = ltrim($val, '0'); 
echo (float) $val; 
+0

我試過這個。 $ newprice = ltrim($ price,'0');它將$ newprice顯示爲12.36。但是當我在另一個函數中使用它來設置像這樣的價格時,$ method-> setPrice($ newprice);它顯示我作爲價格0。 –

+0

應用此代碼後,您必須將$ val轉換爲浮點,當您想要使用它或將值分配給另一個變量時。 float $ temp =(float)$ val; –

+0

希望你讓我......! –