Добрый день. Подскажите пожалуйста вот такую вещь вроде банальная и в тоже время завис над ней.
Суть ситуации в корзине выводится сумма с типом string. В зависимости от выбора доставки сумма меняется то есть если клиент выбирает самовывоз то делается скидка в 10%.
Проблема заключается вот в чем. Если допустим числа 900 и т. д. (до 1000 ) то операция вычисления работают. Но если сумма превышает 1000 рублей он округляет до 1 . К примеру сумма заказа 1800 рублей. При арифметических действиях с вычетом 10 процентов он выводит 0.9 то есть не 1620, а 0.9. Уже перепробовал и преобразование в целое число перед вычислениями и т. п.
Подскажите пожалуйста в чем может быть проблема. Заранее благодарен. Версия PHP 7.1.
p.s.
spoiler<?php
if (!defined('DIAFAN')) {
$path = __FILE__;
$i = 0;
while (!file_exists($path . '/includes/404.php')) {
if ($i == 10)
exit;
$i++;
$path = dirname($path);
}
include $path . '/includes/404.php';
}
$b5 = 0;
$b4 = 0;
$b1 = $result["cart_delivery"];
$b4 = $result["summ"];
//$b5 = settype($result["summ"], "integer");
$b6 = +($result["summ"]);
$b5 = $b6;
if ($b1 <> 2) {
$b2 = $b4;
}
else {
$b2 = $b5;
//echo gettype($b5);
}
$b3 = $b2;
echo '<div class="order-result">'
. $this->diafan->_('Итогo с доставкой') . ' <i><span id="order_summ">' . $b3 . '</span> ' . $result['currency'] . '</i>';
// общая скидка от объема
if (!empty($result["discount_total"]) || !empty($result["discount_next"])) {
echo '<div class="discount-result">';
if (!empty($result["discount_next"])) {
echo $this->diafan->_('До скидки %s осталось <i>%s</i>', true, $result["discount_next"]["discount"], $result["discount_next"]["summ"]);
}
if (!empty($result["discount_total"])) {
echo $this->diafan->_('Скидка') . ' ' . $result["discount_total"]["discount"];
}
echo '</div>';
}
if (!empty($result["delivery"])) {
foreach ($result["delivery"] as $row) {
if($row["id"] == $result["cart_delivery"]) {
echo '<div class="delivery-result">'.$this->diafan->_('Доставка <i>%s</i>',true,$row["price"] . ' ' . $result['currency']).'</div>';
break;
}
}
}
echo '</div>';