170 похожих чатов

Всем привет! У меня на беке финансовые данные хранятся аля

amount * 100 чтоб хранить только integers. Вопрос: как сделать лучше – что бы только бек об этом знал, т.е. перед отдачей данных на фронт делить их на 100, или пусть фронт обрабатывает decimal values и шлет на бек только integer? Ибо я вижу минусы в каждом из подходов, потому просто интересно как лучше (я не бекендер, опыта ноль)

16 ответов

13 просмотров

Делай так, как подскажет сердце

Максим
-

Что это значит?

Лучше отправляй так как в бд сохраняешь

Dmytro-Svyrydenko Автор вопроса
Kvhqm Mboe
Делай так, как подскажет сердце

Сердце подсказывает что делить на 100 для каждого респонса это пизд*ец

Dmytro-Svyrydenko Автор вопроса

Из того что я помню, его нужно юзать только когда его рил нужно юзать, потому что в common-cases он только боль вызывает

Отдавай на фронт копейки

Dmytro-Svyrydenko Автор вопроса
Алексей Попов
Отдавай на фронт копейки

Объясните позицию пожалуйста :) Потому что в данный момент на фронте я просто вынес трансформации в слой апи (как для get, так и для post/put), который еще и кешируется, так что по факту фронт работает напрямую с decimals, и это теперь не мешает

Dmytro-Svyrydenko Автор вопроса
Dmytro Svyrydenko
Объясните позицию пожалуйста :) Потому что в данн...

Потому что раньше да, я прям в коде, в формах и в UI делал fromSystemAmount – тут мой провтык, над было сразу в слой апи вынести этот трансформ

Dmytro Svyrydenko
Объясните позицию пожалуйста :) Потому что в данн...

Система работает только с одной валютой, или с разными?

Dmytro-Svyrydenko Автор вопроса
Алексей Попов
Система работает только с одной валютой, или с раз...

С разными На беке храню amount + refAmount refAmount – amount в base валюте юзера refAmount = amount * currencyRate (чтобы не пересчитывать каждый раз + хранить актуальный курс на дату транзакции)

А странные числа типа 19.200000003, пока не получал?

Dmytro-Svyrydenko Автор вопроса
Алексей Попов
А странные числа типа 19.200000003, пока не получа...

При делении на 100 получал, конечно :) Но: 1) В UI все числа проходят через format для юзер-локали, потому эта проблема отпадает из-за toFixed(2) 2) toSystemAmount когда обратно умножает на 100, обрезает все decimals В итоге – в данный момент 0 проблем Но мне интересно какие конкретно кейсы у вас есть на уме, ибо я в этой области опыта не имею)

первое, что приходит в голову - на фронте сами разберутся, как им приводить в нужный вид. Может округлят, может отбросят копейки, или вообще прописью отрисуют Правда если нужен лёгкий фронт, то готовить всё нужно на беке

Dmytro-Svyrydenko Автор вопроса
Алексей Попов
первое, что приходит в голову - на фронте сами раз...

А, ну это да, понятно В любом случае, что decimal, что integer, фронт должен обработать используя .toLocaleString(), так что «усложнения» никакого нету)

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
я имею в виду официально интегрированный в телегу? в том плане что не сливает переписку с пользователем?
Andrey
9
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта