powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Тип данных money
9 сообщений из 9, страница 1 из 1
Тип данных money
    #32061089
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, в чем назначение типа данных money? Ведь если в базе часть сумм расчитывается компьютером, а часть вводится пользователем, то при использовании money, баланс этих сумм никогда не сойдется.
...
Рейтинг: 0 / 0
Тип данных money
    #32061124
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не сойдется?
Нужно использовать одинаковый способ расчета и округления. Money удобный тип для хранения денежных величин.
...
Рейтинг: 0 / 0
Тип данных money
    #32061136
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вопрос, в какой моент производить округление? В момент чтения из базы или в момент записи в базу?

Предположим что у меня есть тариф услуги. Ввели ее длительность и расчиталась сумма, которую начислили на клиента, и получилось $10.2345. Клиенту выдают счет 10.23, который он и оплачивает, после чего в базу в противовес той суммы заносится $10.2300. Вот и несовпадение баланса.
...
Рейтинг: 0 / 0
Тип данных money
    #32061155
Фотография Luchkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык, в следующий раз клиент отдаст эти 0.0045.
...
Рейтинг: 0 / 0
Тип данных money
    #32061156
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что вам мешает производить округление в момент записи, чтобы правильное значение потом прочитать?
...
Рейтинг: 0 / 0
Тип данных money
    #32061161
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А что вам мешает производить округление в момент записи, чтобы правильное значение потом прочитать?

Т.е. каждая запись в базу должна округляться? Тогда почему бы просто не использовать decimal с двумя знаками после запятой?
...
Рейтинг: 0 / 0
Тип данных money
    #32061175
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Входящие и выходящие суммы учитываются в рублях и копейках, т.е. округляются до двух знаков.
Расчётные суммы можно хранить и считать как угодно, главное, чтобы соблюдался балланс.
Что делать с расхождением при округлениях - чисто бухгалтерская задача.

Допустим вы считаете прибыль за период.
Сумма получено от клиентов = 10234.34$
Сумма стоимостей предоставленных услуг = 5212.2525$
Сумма начислено клиентам, исходя из общей длительности и тарифа = 10233.1265$
Тогда
Прибыль равна 10234.34$ - 5212.25$ = 5022.09$
Убыток от округления = 10234.34$ - 10233.13$ = 1.22$

Когда бухгалтер начнёт разводить все суммы по счетам эта разница, обязательно вылезет, при этом баланс не будет сходится. Задача бухгалтера правильно её скинуть, например на прибыли и убытки.

Конечно, есть ещё другой вариант - размазать разницы от округления по клиентским счетам. :)
...
Рейтинг: 0 / 0
Тип данных money
    #32061281
Underking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не бухгалтерская задача, а простой учет. Сколько насчитала программа, столько денег и должны внести. Никаких списаний сумм нет. Нету в реальности этих десятых и сотых долей копейки, и хранение их до добра не доводит.

Кстати аналогичная неприятность и с датами, пользователь никаких милисекунд не вводит.
...
Рейтинг: 0 / 0
Тип данных money
    #32061417
fima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Underking Для вашей задачи, money может и не подходит, а вот мне деньги надо считать до четвертого знака, и мне удобно...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Тип данных money
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]