Добрый день!
Просвятите неграмотного, пож-ста!
Необходимо хранить в базе MYSQL финансовые данные с точностью до копеек.
Использовать поля типа "DOUBLE" не хочется, так как встречался, когда значение записывается в поле как "3,62", а считывается как "3,6199999999999" (InterBase).
Выход был таким, что данные в базе хранятся в поле типа INT и трактуются, как сумма в копейках. Соответственно для ввода/вывода этих значений в рублях приходится "на лету" умножать/делить на 100. Не очень здорово, как мне кажется.
Вот собственно вопрос - какой типа данных MySql выбрать? Или в MySQL нет такой проблемы?
Спасибо!
Выбор типа поля для хранения рублей
Re: Выбор типа поля для хранения рублей
Я все цены храню в DOUBLE(10,2) и нет проблем.
Вы точность указывали при создании поля?
Вы точность указывали при создании поля?
Re: Выбор типа поля для хранения рублей
когда получаете значение с базы то делайте округление до сотых
Re: Выбор типа поля для хранения рублей
О! спасибо за быстрые ответы!
Я еще ничего не указывал - вот прямо сейчас проектирую структуру и выбираю тип поля для новой таблицы.
Сча поискал в Инете, там тоже увидел, что DECIMAL спасает. Уже хотел вопрос удалять, но раз есть ответы - не буду!
Спасиб еще раз!
Я еще ничего не указывал - вот прямо сейчас проектирую структуру и выбираю тип поля для новой таблицы.
Сча поискал в Инете, там тоже увидел, что DECIMAL спасает. Уже хотел вопрос удалять, но раз есть ответы - не буду!
Спасиб еще раз!
Re: Выбор типа поля для хранения рублей
Вообще, для точности до сотых без разницы в чем хранить - DOUBLE (n,2) или DECIMAL, а вот для точности 6 и более знаков после запятой надо однозначно использовать DECIMAL.
Re: Выбор типа поля для хранения рублей
Почему бы не хранить как целое число копеек.
- sergebezborodov
- Сообщения: 133
- Зарегистрирован: 2010.06.10, 19:53
- Откуда: Dnepropetrovsk-Sevastopol, UA
- Контактная информация:
Re: Выбор типа поля для хранения рублей
Самое главное - не используйте FLOAT
он не предназначен для точных вычислений
он не предназначен для точных вычислений
A passion to perform
http://sergebezborodov.com
http://sergebezborodov.com