2011-04-14 2 views
0

Я недавно переехал мой сайт к Синему хосту и этой функция, который является частью цикла:PHP только добавив первую цифру вместо всего количества

if ($InvoiceType == '18') 
{ 
    echo 'Sum Before addition = ' . $sumInvoice . '<br/>'; 
    $sumInvoice += $complete[$key][5]; 
    print 'Invoice being added = ' . $complete[$key][5] . '<br/>' 
     . 'Sum after addition = '. $sumInvoice . '<br/>'; 
}  

возвращается это:

Sum Before addition = 0 
Invoice being added = 15174.20 
Sum after addition = 1 
Sum Before addition = 1 
Invoice being added = 4604.25 
Sum after addition = 5 
Sum Before addition = 5 
Invoice being added = 63810.83 
Sum after addition = 11 

дамп $ полная:

Array 
(
    [0] => Array 
    (
     [0] => 2161 
     [1] => 638697 
     [2] => CLIV0286 
     [3] => Central Medical Supply Inc. 
     [4] => 0.00 
     [5] => 15174.20 
     [6] => 04/01/2011 
     [7] => 2/1-2/28/11 Fairlawn 
     [8] => PM2 
     [9] => 18 
    ) 
    [1] => Array 
    (
     [0] => 2161 
     [1] => 638698 
     [2] => CLIV0286 
     [3] => Central Medical Supply Inc. 
     [4] => 0.00 
     [5] => 4604.25 
     [6] => 04/01/2011 
     [7] => 2/1-2/28/11 Atrium 
     [8] => PM2 
     [9] => 18 
    ) 
    [2] => Array 
     (
     [0] => 2161 
     [1] => 638699 
     [2] => CLIV0286 
     [3] => Central Medical Supply Inc. 
     [4] => 0.00 
     [5] => 63810.83 
     [6] => 04/01/2011 
     [7] => 2/1-2/28/11 Parsippany 
     [8] => PM2 
     [9] => 18 
    ) 
) 

Что я делаю неправильно?

+0

Не могли бы вы привести пример $ полной. Вы можете сделать это, перейдя print_r ($ complete) –

+0

+ = отлично работает; Я думаю, вам нужно показать нам $ complete –

+0

Его печатают в примере выше. – MG1

ответ

0
$sumInvoice += (float)$complete[$key][5]; 

или

$sumInvoice += floatval($complete[$key][5]); 

floatval()

+0

добавив, это ничего не меняет. – MG1

1

Так это не работает?

$sumInvoice = 0; 
//Init Loop 
if ($InvoiceType == '18') 
{ 
    echo 'Sum Before addition = ' . $sumInvoice . '<br/>'; 
    $sumInvoice = 0 + floatval(trim($complete[$key][5])) + floatval($sumInvoice); 
    print 'Invoice being added = ' . $complete[$key][5] . '<br/>' 
     . 'Sum after addition = '. $sumInvoice . '<br/>'; 
} 

Попробуйте этот небольшой масштаб тест:

$val = "10.25"; 
echo (floatval($val) + 10); 
+0

Нет ... это это самая странная вещь. – MG1

+1

Итак, $ sumInvoice определенно определяется как int перед тем, как он используется? –

+0

Единственное его определение: $ sumInvoice = 0; Также это поплавок. – MG1