2015-04-24 40 views
1

我嘗試使用php函數從php變量中刪除零數字,但無法工作。如何從php變量中刪除0(零數字)?

我嘗試使用roundfloorceil但不起作用。

我該怎麼做?

2.00 ===> 2 
2.05 ===> 2.05 (not remove zero) 
2.50 ===> 2.5 
2.55 ===> 2.55 (not remove zero) 
+1

floor/ceil不能在2.50上工作,因爲這在數學上不正確(會給你2或3)。 – Maximus2012

+4

請向我們展示您的**完整**和**真實**代碼和您的嘗試 – Rizier123

+0

看看是否有幫助:http://stackoverflow.com/questions/5149129/how-to-strip-trailing-zeros-in- php – Maximus2012

回答

0

您必須有字符串變量。請將其轉換爲浮動狀態(浮動)$ var,如果打印出結果,則將丟失這些零。

其他選項是對字符串使用rtrim刪除0和。從最後。看到這裏http://php.net/rtrim

+0

修剪將刪除所有前導零:'2 === trim(200,'0');' – Mike

0

例子試試這個:

$list = array("2.00", "2.05", "2.50", "2.55"); 
foreach($list as $val) 
    echo (double) $val . "</br>"; 

輸出:

2 
2.05 
2.5 
2.55 
+0

什麼是'double' php命令? –

+0

@robertdewere - 有關更深入的解釋和鏈接,請參閱下面的答案。 – Mike

0

試試這個:

number_format((float)$your_number, 2, '.', ''); 

我有同樣的問題。函數number_format()將數字作爲字符串返回,因此它不會在末尾移除零。

-1
$price = '2.00'; 
$price2 = '2.50'; 
$price3 = '2.05'; 

function formatPrice($price) 
{ 
    /* Format number with 2 decimal places, then remove .00, then right trim any 0 */ 
    return rtrim(str_replace('.00', '', number_format($price, 2)), '0'); 
} 

echo formatPrice($price); //2 
echo formatPrice($price2); //2.5 
echo formatPrice($price3); //2.05 
+0

他們想要刪除'2.50'中的最後一個'0' – Mike

+0

已更新。我沒有明白。 –

+0

請刪除您的downvote。 –

0

在PHP中,你可以cast值的Float Type(雙,浮法,真正的),這將下降(後十進制)所有前導或尾隨零。

2.5 === (double) "2.50" 

注意,但是,這並不格式化您的號碼不是刪除0的其他(這並不能保證貨幣格式)。有關格式化,請參見number_format()

2.5 === (double) number_format('2.501', 2, '.', ''); 

例子:

(float) 2.00 === 2 
(float) 2.05 === 2.05 // (not remove zero) 
(float) 2.50 === 2.5 
(float) 2.55 === 2.55 // (not remove zero) 

而且證明:http://ideone.com/wimBHm

一個值得注意的有趣的事情是,測試(float) 2.00 === 2居然不及格,這是因爲2實際上是(int)類型,並因此通過===測試失敗,但是,正如您所看到的,輸出結果正是您正在查找的內容。