Ответить Новая тема Новый опрос 
 Расширенное округление, как?
sour
Новичок
Сообщений: 8
Регистрация: 28-04-2013


28-04-2013 07:52
Ребята, подскажите пожалуйста как можно реализовать данную функцию:

Задаю стоимость товара в админке в долларах
На странице магазина вывожу цену в рублях

НЬЮАНС - нужно округлять стоимость не до копеек, а до ста рублей.


Например было 1 400 564 , а нужно 1 401 000
Например было 1 400 211 , а нужно 1 400 000

Заранее спасибо всем откликнувшимся
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sour
Новичок
Сообщений: 8
Регистрация: 28-04-2013


28-04-2013 08:08
Нашел тему с похожей проблемой, но решения там нет
http://prestadev.ru/forum/tema-6649.html
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sour
Новичок
Сообщений: 8
Регистрация: 28-04-2013


28-04-2013 08:55
Есть идеи?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


28-04-2013 13:33
В классе Tools есть функция ps_round
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sour
Новичок
Сообщений: 8
Регистрация: 28-04-2013


28-04-2013 19:44
Цитата:( ors @ 28-04-2013 14:33 Смотреть сообщение )
В классе Tools есть функция ps_round

Как с ее помощью изменить число цифр ПЕРЕД запятой?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sour
Новичок
Сообщений: 8
Регистрация: 28-04-2013


28-04-2013 19:58
$blank = ($c_blank ? ' ' : '');
$ret = 0;
if (($is_negative = ($price < 0)))
$price *= -1;
$price = Tools::ps_round($price, $c_decimals);
switch ($c_format)
{
/* X 0,000.00 */
case 1:
$ret = $c_char.$blank.number_format($price, $c_decimals, '.', ',');
break;
/* 0 000,00 X*/
case 2:
$ret = number_format($price, $c_decimals, ',', ' ').$blank.$c_char;
break;
/* X 0.000,00 */
case 3:
$ret = $c_char.$blank.number_format($price, $c_decimals, ',', '.');
break;
/* 0,000.00 X */
case 4:
$ret = number_format($price, $c_decimals, '.', ',').$blank.$c_char;
break;
/* 0 000.00 X Added for the switzerland currency */
case 5:
$ret = number_format($price, $c_decimals, '.', ' ').$blank.$c_char;
break;
}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sour
Новичок
Сообщений: 8
Регистрация: 28-04-2013


28-04-2013 19:58
как?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sour
Новичок
Сообщений: 8
Регистрация: 28-04-2013


28-04-2013 20:05
или тут?

public static function ceilf($value, $precision = 0)
{
$precision_factor = $precision == 0 ? 1 : pow(10, $precision);
$tmp = $value * $precision_factor;
$tmp2 = (string)$tmp;
// If the current value has already the desired precision
if (strpos($tmp2, '.') === false)
return ($value);
if ($tmp2[strlen($tmp2) - 1] == 0)
return $value;
return ceil($tmp) / $precision_factor;
}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
sour
Новичок
Сообщений: 8
Регистрация: 28-04-2013


28-04-2013 20:15
подскажите, ребят, пожалуйста
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
tympi
Cпециалист
Сообщений: 265
Регистрация: 27-12-2011


03-05-2013 05:47
Вот хорошая статья
http://stateika.com/php/round-ceil-floor.html
Просто немного модифицировать фун-ию вывода цены
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос