2016-10-05 34 views
0

我有一個foreach循環輸出一串數字,然後我想把所有這些數字加在一起。但是,當我這樣做時,它只會將小數點前的數字加起來。我覺得也許我缺少一些與number_format可能?在PHP中添加小數點

下面是代碼:

$totalHours = '0'; 
    foreach ($timeEntries as $entry) { 
    $entryID = $entry->id; 
    $entryHours = $entry->hours; 
    $entryDate = $entry->spent_at; 
    $totalHours += $entryHours; 
    echo $entryHours."<br />"; 
    } 
    echo "All added up: $totalHours <br />"; 

,這是顯示如下:

0.7 
0.5 
0.53 
2.6 
0.8 
0.2 
0.5 
2.22 
1.28 
0.57 
0.55 
0.35 
0.5 
0.5 
1.2 
1.4 
1.2 
0.5 
0.82 
1.0 
0.17 
0.33 
2.0 
1.0 
0.5 
1.0 
0.17 
1.97 
All added up: 14 

任何想法?

+0

您是否嘗試過鑄造的數字作爲花車?這可能有助於http://stackoverflow.com/questions/481466/php-string-to-float – Craig

+0

'$ totalHours'應該被設置爲'0.0'(沒有引號),所以它從一開始就被當作一個浮點數來投射,不是一個整數字符串。 – aynber

+0

@aynber這應該沒關係。 PHP將所有的算術作爲浮點數。 – Barmar

回答

0

@craig得到了這一個!

的解決辦法是將其更改爲以下:

$totalHours = '0'; 
    foreach ($timeEntries as $entry) { 
    $entryID = $entry->id; 
    $entryHours = $entry->hours; 
    $entryDate = $entry->spent_at; 
    $floatHours = (float) $entryHours; 
    $totalHours += $floatHours; 
    } 
    echo "All added up: $totalHours <br />"; 
+0

這不應該是必要的。它的工作原理沒有使用演員。 http://ideone.com/7iu2bI – Barmar