правильно понимаю, идеальный тип - DECIMAL, потому что позволяет хранить цены с копейками (например 99.9)?
Но вот с чем столкнулся - при таком типе почему-то происходит округление - вместо 99.5 в базу сохраняет 100, хотя стоит decimal(10,2) - от куда берется округление?
При decimal(10,0) округление не происходит, но дописываются два нуля после запятой, даже если их не ставить.
Собственно вопрос, как сделать так, чтобы хранило и целые числа 99 и дробные 99.5 и ничего не округляло, не дописывало нули если их не нужно? Поставить тип longtext?
Вообще больше похоже на то, что нужно бы форматировать на стороне морды...
так и есть) в базу сохраняется уже обработанное число, тут вопрос в каком типе хранить данные)
Взять правильный тип: decimal(10, 2). И дальше на стороне морды форматировать как душе угодно: отрезать нули / не отрезать нули, округлять / не округлять На скрине пример.
Понимаешь правильно. Округления не бывает, ты что-то сделал не так, что-то сделал неправильно.
Обсуждают сегодня