Здесь заголовок может быть обычным, но я искал последние 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. Я совершенно не могу понять, как рассчитывается вывод.
вот скриншот
Попробуйте это, просто не используйте 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++;
Других решений пока нет …