Доброго времени! Подскажите каким образом можно округлить/отображать иконку скидки, например у меня есть товар я ставлю определенную цену на него, потом делаю акцию уже с новой ценой, получаю скидку -51%. Каким образом сделать чтобы отображать не -51% а 50%, то есть округлить это значение. Любые варианты готов выслушать. P/S: Или писать точную цену с мелочью после чего делать акцию с ценой в которой есть мелочь после чего скрыть вывод знака цены после запитой.... - Это единственный вариант?
вроде как такового округления нет до десятков. Но можно тупо последнюю цифру заменить на 0. Если последняя цифра больше 5, то меняем последнюю на 0 и первую прибавляем +1.
в смысле?? У меня в шаблоне по умолчанию нет процентов. У вас они есть. Видимо переменная находится в шаблоне. Вот еще вариант, думаю понятен. PHP: $skidka = 51;echo round($skidka/10) * 10;
Туплю..., я сижу на альтернативном сейчас шаблоне, и дефолтный не очень изучал, тут такая штука как скидка есть из-за этого подумал что и на дефолте то же... Спасибо.
Решил проблему импортируя цену с копейками в итоге получаю правильную скидку. Если копейки мешают, можно убрать цифры после точки в настройках.
Забираю свои слова назад, решил вернутся до вашего решения, помогите пожалуйста реализовать такую штуку, у меня есть функция: PHP: 'saving' => $result['price'] == 0 ? 100 : round((($result['price'] - $result['special'])/$result['price'])*100, 0) А таким образом я это вывожу: HTML: <span class="saving">-<?php echo $product['saving']; ?>%</span> Каким образом сделать так чтобы процент который получался на выходе был: 10, 15, 20, 25... Например, если значение на выходе около 77 = 75.
PHP: 'saving' => $result['price'] == 0 ? 100 : round((($result['price'] - $result['special'])/$result['price'])*100, 2) PHP_ROUND_HALF_DOWN - это работает только отображает очень много знаков после запятой. Пример: (27-20/27)*100 = 25,93% Таким образом все считает правильно, только как скрыть последние значение после запятой?
PHP: 'saving' => $result['price'] == 0 ? 100 : floor((($result['price'] - $result['special'])/$result['price'])*100) Так работает, сейчас протестирую конечно. Ну вроде все в поряде.
Работает но не так как нужно. Я не могу получить точный процент на некоторых товарах. Подскажите как правильно написать вот такой момент: PHP: floor((($result['price'] - $result['special'])/$result['price'])*100) Другими словами отнимаю 15%, пример: (49-41.65/49)*100=15% - все верно. Но каким образом сделать так, чтобы когда я считаю: (49-42/49)*100=14% - это отображалось как 15%. Как правильно округлять, чтобы получать правильный процент? Я перепробовал разные подходы: round(), ceil(), floor()... Не могу сообразить, помогите разобраться.
Так, я что-то не могу понять каким образом мне тогда подгонять процент к формуле, если я только этой формулой считаю нужный мне процент... Или возможно я вас не очень понял.
А так поймете?))) PHP: 'saving' => $result['price'] == 0 ? 100 : round(((($result['price'] - $result['special'])/$result['price'])*100)/5)*5
Я понял суть, но так не катит. Я все равно получаю не то значение которое мне нужно, мне кажется ваш способ отобразить такое же самое значение как получаю я. Другими словами, то же самое что было изначально.
Йо-майо, я вас понял, я неправильно посмотрел, неправильно после этого сообразил, после чего неправильно написал формулу и в итоге получил тоже значение.... Все верно, я получаю 15%. Все работает. Сейчас все пересмотрю, но мне кажется это решение есть верным! На самом деле, извините ещё раз за то что не досмотрел..