2012-03-29 31 views
2

這是一個用於格式化浮點數爲INT功能,如果小數部分爲0PHP int + float。錯誤或默認行爲?

$formatted = (int)$i + $i - (int)$i; 

// $i = 15.12 , $formatted = 15.12 
// $i = 15.00 , $formatted = 15 

但它似乎是在PHP的錯誤。在PHP手冊中我沒有發現INT + FLOAT操作的類型轉換。在其他語言中,如C++ INT + FLOAT = FLOAT。

回答

1
<?php 

$i = 15.00; 

$formatted = (int)$i + $i - (int)$i; 

var_dump($formatted); 


float(15) 

它仍然是一個浮動。

究其原因,00沒有得到顯示是因爲它正是15

如果你知道電話號碼正好是15,你不知道它是,那麼你就不能來了上下文假設任何精度。

例如,你會期望$ f =(float)15;顯示15.00?不,當然不。同樣的概念也適用,只是在你所期望的15.00的背景下。

此外,你可能會發現number_format()或round()有用,除非這只是一個實驗。

+0

非常感謝!我真的沒有嘗試var_dump $格式的值... – Serge 2012-03-29 05:16:00