Php Calculation Показывает неправильный вывод в множественном и плюс оператор вычисления - PullRequest
0 голосов
/ 25 декабря 2018

Здесь заголовок может быть обычным, но я искал последние 5 часов в своем коде, на php.net и здесь, но ничто не соответствует моей проблеме.Моя проблема в том, что я хочу вычислить две переменные.но почему его не правильно рассчитать.

    $qty = 0;
        $cqty = 0;
        $price = 0;
        $cprice = 0;                                    
        $gprice = 0;                                    
        $hprice = 0;
        $tprice = 0;
        $i = 1;
            foreach( $details  as $index => $detail) {?>
                                                    <tr>
        <td><?php echo $i; ?></td>
        <td><?php echo $detail['item_name']; ?></td>
        <td class="right"><?php echo $detail['quantity']; ?></td>
    <td class="right"><?php echo number_format((float)$detail['purchase_price'], 2); ?></td>
        <td class="right"><?php echo number_format((float)$detail['quantity']*$detail['purchase_price'], 2); ?></td>
        <td><?php echo $details2[$index]['item_name']; ?></td>
        <td class="right"><?php echo $details2[$index]['cquantity']; ?></td>
        <td class="right"><?php echo number_format((float)$details2[$index]['cpurchase_price'], 2); ?></td>
        <td class="right"><?php echo number_format((float)$details2[$index]['cquantity']*$details2[$index]['cpurchase_price'], 2); ?></td></tr>
<?php
$qty += $detail['quantity'];
$cqty += $details2[$index]['cquantity'];
$price +=  (number_format((float)$detail['quantity'] *$detail['purchase_price'], 2));
$cprice +=  (number_format((float)$details2[$index]['cquantity'] * $details2[$index]['cpurchase_price'], 2));

$gprice = (double) $price; 
$hprice = (double) $cprice;
$tprice +=  $gprice + $hprice;                                        
$i++;
} ?>
</tbody>
</table>
</div>
<div class="space20"></div>
<div class="row-fluid">
<div class="span4 invoice-block pull-right">
<ul class="unstyled amounts">
<li><strong>Sub - Total amount :</strong> <?php echo number_format((float)$price, 2); ?> </li>
<li><strong>Grand Total :</strong> <?php echo number_format((float)$cprice, 2); ?> </li>
<li><strong>cccGrand Total :</strong> <?php echo number_format((float)$tprice, 2); ?> </li>
</ul>
</div></div>

Мой вопрос заключается в том, чтобы показать правильный расчет между ценой + цена = цена.Предположим, что цена = 170, цена = 520, поэтому цена = 690.Но вывод, показывающий tprice = 1890. Я совершенно не могу понять, как рассчитывается вывод. вот скриншот

1 Ответ

0 голосов
/ 25 декабря 2018

Попробуйте, просто не используйте number_format при вычислении значений, потому что это даст строку, а не число:

$qty += $detail['quantity'];
$cqty += $details2[$index]['cquantity'];
$price +=  (float)$detail['quantity'] *$detail['purchase_price'];
$cprice +=  (float)$details2[$index]['cquantity'] * $details2[$index]['cpurchase_price'];

$gprice = (double) $price; 
$hprice = (double) $cprice;
$tprice +=  $gprice + $hprice;                                        
$i++;
...