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

Ребят, это какой-то сюр, какие инты когда речь о деньгах?

😁 Я по основному профилю - базовик. За 10 лет ни разу не видел в базе деньги ни в интах ни тем более в строках! Если в строках то как выборку делать? По строкам 9 рублей больше чем 10 😁
Кастомить каждую запись при каждом селекте? Так и мэйнфрейм сбера влегкую уложишь! 😆

8 ответов

24 просмотра

Теоретически мне кажется, что можно хранить и копейки) Мы так не делаем. А есть ведь кто работает в баксах, но нужно и в рублях рассчитываться

На интах делается «фиксированная запятая». Можно на рекордах «навалить» имитацию нового типа. Но проще взять currency который буквально для этого и создан

Я объясню в каких ситуациях, я например, хранил прямо в строках. Есть у меня поле в одной базе, которые хранит некую переменную структуру в JSON формате, полученной от API. Не было смысла ее стримить в конкретные поля и переменные, тем более структура может быть абсолютно разной. Так вот появляющиеся там поля получается хранятся как строки. А так, я за использование currency. Но, хочу заметить, что в базе, к примеру, SQLIte реальные данные хранятся все равно не в Currency. Ну, верее по ситуации может хранится как Float или как бигинт и т.д.

Renat Suleymanov
Я объясню в каких ситуациях, я например, хранил пр...

Я только про реальное, про свой хлеб в MsSql, он храниться в currency. Весь)))

Я изначально хранил деньги в intеger и по сей день есть еще много мест в базе где так осталось. Но в какой-то момент мне нужно было повысить точность меньше копейки, и пришлось перейти на numeric(18,4), который как раз совпадает с currency. Где не нужно именно .4 там использую .2 Еще есть косяк с весом - внедрил поле weight integer, в граммах, считал что этого достаточно. Пока товар был книги - хватало. Когда дошло до открыток - начались проблемы. Умножаем вес открытки в граммах на количество в пачке - и периодически получаем дичайшее расхождение по весу, ибо полграмма на одной открытке - это очень много в процентах. Так что тут так же лучше было заводить что-то дробное, чтобы при необходимости можно было повысить точность не переделывая все места где это поле используется.

Владимир Аксенов
Я изначально хранил деньги в intеger и по сей день...

Мы вес во float, обычно это кг. Бывает сколько - то грамм на несколько кг

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта