это в БД?
в БД - либо в целочисленном формате хранить либо в decimal. в PHP - если это деньги, вроде есть либа moneyphp/money, если что-то другое но важна точность - имхо лучше преобразовывать в целые числа и работать уже с ними
А на каком уровне преобразовать? Постоянно везде умножать на 100 - полная жуть. На уровне записи и получения из БД?
на уровне вывода пользователю делить на 100, а все расчеты в копейках, т.е. в целых значениях
Только для показа юзеру
И везде надо учитывать что есть какой-то коэффициент?
Окей. Видимо это тру вэй
NumberFormatter class
Надо освоить Value Object шаблон
Хм. Это интересная мысль. У меня кейс - хранение денег и расчёт рефералки. Вот там где я ввожу деньги - * на 100,там где вывожу пользователю - делю на 100. А вот в расчёте рефералки приходится тоже на 100 делить. Учитывать этот коэффициент. И проблема в том, что этот коэффициент возможно станет динамическим в зависимости от валюты. Value Object меня спасёт?
Абсолютно нормально, ничего жуткого
Когда у меня будет куча этих делений и мне придётся коэффициент деления поменять в зависимости от валюты - будет жутко. Value Object думаю подойдёт лучше
Ну внутри vo тебе никто не мешает хранить целочисленно. Просто что бы ты не размазывал сильно логику округления при работе с деньгами
Обсуждают сегодня