2016-10-05 2 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 делает все арифметические операции как float. – 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

Смежные вопросы