passshift
@passshift
php, js, html5, css

Хранение цены в копейках (int). Как корректно выводить?

Здравствуйте.

Почитал множество мнений, на разных форумах, было решено отказаться от decimal в пользу int.

Понятно что при сохранении цены её нужно умножать на 100, а при выводе делить.

К примеру:

Берем цену 1 500 руб. 50 коп (1500,50) умножаем на 100, получаем 150050 копеек - сохранили.

Выводим: 150050/100, получаем 1500,5 - видим, что 0 в конце потерялся.

Как корректно в итоге вывести 50 копеек? Так же не понимаю как как быть если 00 копеек. Возможно у кого-нибудь есть готовая "легкая" функция, буду благодарен за помощь, совет.

Добавлю: решение пока только одно:

public static function price($price) {
       return $result = number_format($price/100, 2, ',', ' ').' руб';
    }


- насколько правильно?
  • Вопрос задан
  • 3656 просмотров
Решения вопроса 1
KorsaR-ZN
@KorsaR-ZN
Другого решения наверное и не будет, Ваше хорошее. Разве еще что-то нужно?)
Только $result =, там все же лишнее :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Rrooom
@Rrooom
Зря. Это лишняя работа и источник ошибок. Используйте Decimal.
Ответ написан
By_Engine
@By_Engine
В sql есть тип данных float, который позволяет хранить числа с плавающей точкой
Ответ написан
akubintsev
@akubintsev
Опытный backend разработчик
В PostgreSQL есть замечательный тип данных как раз на такое дело. Называется numeric
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы