Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Типы данных для хранения валют, денег в коде и в базе данных. Какой лучший? кратко

Лекция



Привет, Вы узнаете о том , что такое типы данных для хранения валют денег в коде, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое типы данных для хранения валют денег в коде, в базе данных какой лучший? , настоятельно рекомендую прочитать все из категории Структуры данных.

Т.к большинство приложений созданы для работы с деньгами , то нужно понять и выбрать как хранить и работать с денежными суммами.Какой из них лучший и оптимальный?
После первого анализа проблемы выявляем что есть несколько подпроблем-

1) как обрататывать дробные начения денежных сумм?

2) в какой момент округлять?

3)как хранить (как целое, как floaf, как специалный тип, как текстовое значние VARCHAR и т.п.)?

Хранить в БД можно раными способами :


1) Хранение в int (bigint) (подерживают все виды баз данных)
2) Хранение в decimal (Mysql, Postgess) или аналоге ("Currency" - MS Sql)

Допустим, что нам достаточно вести биллинг в системе в USD с точности до центов.



Хранение денежных сумм в BIGINT(INT)

Плюсы:

  • Нет плавающей точки — меньше неточностей
  • Можно производить стандартные мататематические операции и не бояться, что потеряешь где-то копейки
  • Математические (при вычислениях) операции выполняются быстрее
  • Операции выбора для построения отчетов будут выполняться быстрее
  • Вот международный стандарт по денежным единицам en.wikipedia.org/wiki/ISO_4217
    Там видно, что число знаков после запятой у них может быть разное. Об этом говорит сайт https://intellect.icu . Для простоты разработки, все стоит хранить в минимальной дробной денежной единице валюты, осущеставляя конвертацию при выводе и вводе (т.е. в int)


Минусы:

  • Надо помнить о постоянном умножении/делении на 100
  • вомзможно неугадать с самого начала нужную точность. например система спроектирование с использоваем точности два знака а затем этаже система будтспользоваться с основной валютой биткои где важны 6 знаков после запятой



Хранение денежных сумм в Deciamal/Numeric/Currency

Рекомендации для MySQL
Типы DECIMAL и NUMERIC хранят точные числовые значения данных. Эти типы используются, когда важно сохранить точную точность, например, с денежными данными. В MySQL NUMERIC реализован как DECIMAL, поэтому следующие замечания о DECIMAL в равной степени применимы к NUMERIC.

Плюсы:

  • Храниться в естественном виде
  • Не надо дополнительно проиводить округление при выводе и вводе
  • Возможно со вмеменем изменить - увеличить или уменьшить точность
  • Совместимость с GAAP . GAAP заботится о том, чтобы числовые ошибки округления были достаточно малы, чтобы их можно было считать несущественными даже при работе со многими записями.

Минусы:

  • При неаккуратной работе (не через bcmath) можно ошибиться при умножении или делении
  • Есть вероятность накопления суммы округления в итоге получить разные суммы относительно итоговой
  • Работа через bcmath медленее
  • У разной валюты разное кол-во знаков поле запятой — если у вас мультивалютная система, будет избыточность данных. Придется делать более 2 знаков после запятой, но они будут нужны не всем
  • Некий Роберт Мартин (Robert Cecil Martin), также известный как Дядя Боб : «Использовать числа с плавающей точкой для представления денежных сумм — почти преступление»

Типы данных для хранения валют, денег в коде и в базе данных. Какой лучший?

Какой способ храниия и в какой момент конвертировать должны приять архитектор приложения совместно с бухгалтером предприятия.

В любом случае нужно учесть все этапы округления и на этапе тестирования выявить возможные проблемы связанные с округлениями и особенно накоплением округленных сумм.

Анализ данных, представленных в статье про типы данных для хранения валют денег в коде, подтверждает эффективность применения современных технологий для обеспечения инновационного развития и улучшения качества жизни в различных сферах. Надеюсь, что теперь ты понял что такое типы данных для хранения валют денег в коде, в базе данных какой лучший? и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Структуры данных

Из статьи мы узнали кратко, но содержательно про типы данных для хранения валют денег в коде
создано: 2019-12-04
обновлено: 2024-11-13
112



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Структуры данных

Термины: Структуры данных