|
|
|
Тип данных money
|
|||
|---|---|---|---|
|
#18+
Интересно, в чем назначение типа данных money? Ведь если в базе часть сумм расчитывается компьютером, а часть вводится пользователем, то при использовании money, баланс этих сумм никогда не сойдется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 11:21:53 |
|
||
|
Тип данных money
|
|||
|---|---|---|---|
|
#18+
Почему не сойдется? Нужно использовать одинаковый способ расчета и округления. Money удобный тип для хранения денежных величин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 12:33:44 |
|
||
|
Тип данных money
|
|||
|---|---|---|---|
|
#18+
Тогда вопрос, в какой моент производить округление? В момент чтения из базы или в момент записи в базу? Предположим что у меня есть тариф услуги. Ввели ее длительность и расчиталась сумма, которую начислили на клиента, и получилось $10.2345. Клиенту выдают счет 10.23, который он и оплачивает, после чего в базу в противовес той суммы заносится $10.2300. Вот и несовпадение баланса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 12:45:38 |
|
||
|
Тип данных money
|
|||
|---|---|---|---|
|
#18+
дык, в следующий раз клиент отдаст эти 0.0045. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 12:57:29 |
|
||
|
Тип данных money
|
|||
|---|---|---|---|
|
#18+
А что вам мешает производить округление в момент записи, чтобы правильное значение потом прочитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 13:00:27 |
|
||
|
Тип данных money
|
|||
|---|---|---|---|
|
#18+
>А что вам мешает производить округление в момент записи, чтобы правильное значение потом прочитать? Т.е. каждая запись в базу должна округляться? Тогда почему бы просто не использовать decimal с двумя знаками после запятой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 13:08:15 |
|
||
|
Тип данных money
|
|||
|---|---|---|---|
|
#18+
Входящие и выходящие суммы учитываются в рублях и копейках, т.е. округляются до двух знаков. Расчётные суммы можно хранить и считать как угодно, главное, чтобы соблюдался балланс. Что делать с расхождением при округлениях - чисто бухгалтерская задача. Допустим вы считаете прибыль за период. Сумма получено от клиентов = 10234.34$ Сумма стоимостей предоставленных услуг = 5212.2525$ Сумма начислено клиентам, исходя из общей длительности и тарифа = 10233.1265$ Тогда Прибыль равна 10234.34$ - 5212.25$ = 5022.09$ Убыток от округления = 10234.34$ - 10233.13$ = 1.22$ Когда бухгалтер начнёт разводить все суммы по счетам эта разница, обязательно вылезет, при этом баланс не будет сходится. Задача бухгалтера правильно её скинуть, например на прибыли и убытки. Конечно, есть ещё другой вариант - размазать разницы от округления по клиентским счетам. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 13:25:47 |
|
||
|
Тип данных money
|
|||
|---|---|---|---|
|
#18+
Это не бухгалтерская задача, а простой учет. Сколько насчитала программа, столько денег и должны внести. Никаких списаний сумм нет. Нету в реальности этих десятых и сотых долей копейки, и хранение их до добра не доводит. Кстати аналогичная неприятность и с датами, пользователь никаких милисекунд не вводит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2002, 15:34:14 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32061281&tid=1819363]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 315ms |

| 0 / 0 |
