|
|
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
Всем добрый день, кто уже на этом собаку съел, поделитись. Стоит ли использовать тип Currency или Extendet как прявильно? И как будет потом меньше проблем с расхождением расчётных сумм в сравнении с банками и другими финансовыми организациями? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 18:12 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
Только целые, никаких вещественных типов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 18:27 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
Если точности 4 знака хватает, то используйте Currency. Если нет, до домножайте до целого числа и используйте целые типы. Real/Single/Double/Extended для денежных расчетов использовать нельзя никогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 20:00 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Если точности 4 знака хватает, то используйте Currency накаких Currency, всё считать только целыми, в копейках. точно так же считают все банки, там никаких currency нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 20:02 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
Currency = type Int64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:02 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev Currency = type Int64 таки Int64 лучше, чем какие-то ваши currency ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:07 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
defecator, Чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:18 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
rgreat defecator, Чем? наверное, тем, что в System.pas есть преобразования CurrencyToInt64, Int64ToCurrency (за точность названий не ручаюсь) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:23 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
defecator, Не понял преимуществ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:28 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
rgreat defecator, Не понял преимуществ. преимущество - считать всё в целых, типа того же Int64 вместо искусственных типов, типа currency ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:31 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
defecator преимущество - считать всё в целых, типа того же Int64 вместо искусственных типов, типа currency Давай еще например double через Int64 считать. Per rectum ad astra. (c) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:46 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
defecator Dmitry Arefiev Currency = type Int64 таки Int64 лучше, чем какие-то ваши currency UInt64 лучше! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:47 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Array of byte, чего уж мелочиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:50 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
rgreat defecator преимущество - считать всё в целых, типа того же Int64 вместо искусственных типов, типа currency Давай еще например double через Int64 считать. Per rectum ad astra. (c) ога-ога. 100 тыщ копеек из Int64 потом проще и точнее перевести в рубли, чем ваши double с округлениями Ты когда квитанцию в сбере по QR-коду оплачиваешь, не поленись, отсканируй телефоном, посмотри что там в строке Sum да и квиточки с QR-кодом с магазинных чеков тоже не поленись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:51 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
defecator 100 тыщ копеек из Int64 потом проще и точнее перевести в рубли, чем ваши double с округлениями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:53 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
rgreat defecator 100 тыщ копеек из Int64 потом проще и точнее перевести в рубли, чем ваши double с округлениями defecator Ты когда квитанцию в сбере по QR-коду оплачиваешь, не поленись, отсканируй телефоном, посмотри что там в строке Sum да и квиточки с QR-кодом с магазинных чеков тоже не поленись (по ссылке пройти) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 21:54 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
rgreat defecator 100 тыщ копеек из Int64 потом проще и точнее перевести в рубли, чем ваши double с округлениями Для чего тебе сотые доли копеек? Как ты их используешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 22:46 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Каши не просит. А вообще бывают, например, ливийские дирхамы, которые 1/1000 динара. Или рины, которые 1/1000 японской йены. Ну а уж что там в Африке твориться - это отдельная тема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2021, 23:24 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
ъъъъъ rgreat пропущено... Ты на досуге почитай как currency устроен. И в чем его отличие от double. Для чего тебе сотые доли копеек? Как ты их используешь? А вот пригодилось однажды, для повышения точности округления. Потом правда пришлось это выкинуть. :) Исходно и в программе и в базе использовал для хранения денег тип integer и какое-то время было нормально. Int64 тогда в Firebird не было, впрочем как и его самого. Но таки неудобно, при каждом запросе делить на 100, что бы вывести в рублях, понятно для человека. В какой-то момент решил что таки в currency и в numeric(18,4) хранить удобнее. Решил переделать. Потратил несколько месяцев но до конца такой объемный переход довести не смог. Откатил все взад и пошел заново, но теперь частями, не все сразу. Так что у меня сейчас в базе и в программе в разных местах одновременно есть и в рублях и в копейках. Был еще у меня пролет, с типом данных и точностью. Завел в базе поле под вес товара. Ну и типа в граммах - куда еще точнее, пользователи все равно точнее не взвесят. Ну и сделал. А потом, когда начали работать с этим полем плотнее, обнаружился косяк. С товарами с малым весом. В частности это открытки. Попробуй задай вес одной открытки, а потом посчитай сколько будет весить 5000 открыток. Набирается большая ошибка. currency тут был бы очень к месту :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2021, 04:05 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
defecator rgreat defecator, Не понял преимуществ. преимущество - считать всё в целых, типа того же Int64 вместо искусственных типов, типа currency лишние сущности это плохо, но необъявленные сущности ещё хуже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2021, 08:12 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
а чем int64 спасет от операции 1/3*3? Копейками в целую часть точно не спасти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2021, 08:36 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
hlopotun, Цена не ходит одна. Как правило, это три величины: сумма, цена и количество. Две храним в базе данных, третью - вычисляем. А вот что хранить, а что вычислять - исходим из задачи. Если возьмём какой-либо документ, например, счет-фактуру, то в записях документа вычисляем цену товара Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Далее идём на денормализацию, и в титульной части документа храним сумму, которую не позволяем пользователю редактировать, а вычисляем в триггере на изменение (вставку, удаление) табличной части документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2021, 09:17 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
zeon11, Хоть напрямую и не относится к обсуждению, но сильно глаз режет (без обид) интересный подход к именованиям автор CENA COMPUTED BY (SUMM/COUNTS), тогда уж и остальное надо: CENA VYCHISLENIYA(SUMMA/KOLICHESTVO) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2021, 09:29 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
fraks ....... Был еще у меня пролет, с типом данных и точностью. Завел в базе поле под вес товара. Ну и типа в граммах - куда еще точнее, пользователи все равно точнее не взвесят. Ну и сделал. А потом, когда начали работать с этим полем плотнее, обнаружился косяк. С товарами с малым весом. В частности это открытки. Попробуй задай вес одной открытки, а потом посчитай сколько будет весить 5000 открыток. Набирается большая ошибка. currency тут был бы очень к месту :) Была такая-же проблема. Делал "Общепит", всю рецептуру хранил в граммах, а потом появились Приправы-специи. В блюдо идут мало, а цена на грамм большая. Выкрутился введением дополнительной таблицы пересчёта, ну типа сколько грамм в килограмме, миллиграмм в грамме, грамм в фунте и т.п. Т.е. количество так и осталось до третьего знака, но управлять процессом можно выбором соответствующих ед. измерений, а при расчете стоимости блюда приводить с помощью этой таблицы к какой-либо одной ед. измерения, хочешь - в каратах, а хочешь в тоннах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2021, 09:29 |
|
||
|
Типы данных для расчётов и денежных операций, плюсы и минусы
|
|||
|---|---|---|---|
|
#18+
Gerasimenko zeon11, Хоть напрямую и не относится к обсуждению, но сильно глаз режет (без обид) интересный подход к именованиям автор CENA COMPUTED BY (SUMM/COUNTS), тогда уж и остальное надо: CENA VYCHISLENIYA(SUMMA/KOLICHESTVO) Принимается, самому не нравится, этой таблице уже лет 30, ещё с FoхPro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2021, 09:33 |
|
||
|
|

start [/forum/topic.php?fid=58&startmsg=40038439&tid=2037657]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 473ms |

| 0 / 0 |
