2015-09-07 33 views
-2

正如我們大多數人所知,PHP的打字方式很薄弱。但那些不需要這些的人呢? 我的問題是,在這裏我有這樣的代碼:如何在php中進行變量類型轉換?

$total_price=0; 
while(some condition) 
{ 
    //1st iteration 
    $total=0; 
    $total = number_format(2450.0000*1,4); 
    echo $total;//output-like 2,450.0000 
    $total_price +=number_format($total,4); 
    //2nd iteration 
    $total=0; 
    $total = number_format(1600.0000*2,4); 
    echo $total;//output-like 3,200.0000 
    $total_price +=number_format($total,4); 
} 

然後echo $total_price;5 ....怎麼樣? 除了number_format()在這裏我要添加和xxxx.0000,xxxx.0001乘法嚴格有4小數例如0.0000 + 0.0000 = 0.00000

回答

2

一個數字是一個數字。格式化的數字是一個字符串。數字用於計算,字符串用於顯示。只要您嘗試對字符串進行計算,PHP將嘗試再次將其轉換回數字。

你應該先做計算,當你將它輸出只格式化。

3

這有絕對無關,與 「弱」 動態類型。幾乎任何語言,無論類型系統如何,都會以這種方式行事。

數字沒有「嚴格的四位小數」。 24502450.00000002450.00之間沒有區別。這完全一樣的價值。你不能用嚴格的小數位數進行數學運算。

此外,浮點值不是精確的;如果您需要精確度,則需要使用BC Math

無論哪種方式,你格式在輸出小數號碼,當echo你的電話號碼。在此之前,小數位數無關緊要。見number_formatsprintf