Bogdan
там же ещё прикол с округлением есть
Bogdan
Natalia
Если правильно понимаю, ID у тебя - целое число, там не надо округлять, а Баланс - округляется до 2го знака после запятой (копейки). Тебе вполне должно хватить дабла
Alexandr
Alexandr
Alexandr
Bogdan
Bogdan
ааа блин
Bogdan
я даже не обращаю обычно внимание на аватарки, я пролистываю их
Bogdan
ладно надо будет почитать в джаве по этой теме как устроено ибо в дот нете (мне так проще чем шарп называть) decimal исключает ошибки округления
Alexandr
Bogdan
короче я так понял один из самых распростроненных вариантов это хранить лонг, а дальше просто делить в процессе
Mikhail
Bogdan
ну или так
Mikhail
Не во всех валютах 1 у.е. = 100 мелких у.е.
Alexandr
Каждый тип данных для своей цели предназначен
Bogdan
э стоп
Alexandr
А для вывода в жаве используется форматирование
Bogdan
флоат для денег вообще не рекомендуется не в одном языке насколько я знаю
Bogdan
ибо он очень криво округляет
Alexandr
Я не о деньгах сейчас
Bogdan
ааа ну если в целом то это понятно
Alexandr
Вообще лучше смотреть как люди делают, а не изобретать велосипед
Bogdan
Bogdan
Alexandr
Для любой суммы денег достаточно дабла
Bogdan
по крайней мере так на стэковерфло пишут
Alexandr
Это на шарпе?
Bogdan
нет
Bogdan
в шарпе есть decimal, тут редко что то другое используют для финансов
Bogdan
да и зачем, у децимала высокая точность и диапазона более чем достаточно
Alexandr
Чувак, дабл хранит числа до ±1.8*10 в 308 степени. Всё что не влезает, пишется в БигДецимал. Ты представляешь насколько это дохрена?
Bogdan
я знаю, но тут в другом прикол
Bogdan
тут прикол в том что дабл имеет косяки в округлении
Руслан
Привет.нет, это не тот)))))
Bogdan
и лучше тогда уж хранить копейки и целые отдельно
Alexandr
Можно свой тип данных написать, который будет хранить только рубли и копейки в целых числах
Bogdan
а ещё там прикол в том что дабл не умеет в отрицательную степень от 10
Bogdan
Пашок🗽
Bogdan
что дабл будет очень херово округлть
Bogdan
поэтому дабл лучше исключать из финансовых расчетов
Mikhail
А потом рассказывай кастомеру, куда делась его копейка. Или в налоговой, лол.
Bogdan
есть даже книга вроде какая-то почему нельзя использовать double для финансов
Bogdan
а если говорить о джаве, то я вроде встречал такие отсылки в Джошуа Блохе (я не помню как точно читается его фамилия)
Bogdan
в Эффективной джаве
giorgio
Alexandr
Чуваки, если работаете с баблом, то используйте кастомный класс, который работает с целыми числами. По ходу учите его делить, вычитать проценты
Bogdan
флоат вообще никто не использует для этого
Mikhail
Bogdan
Пашок🗽
Пашок🗽
Как и шорт например)) и чар почти
Bogdan
ну шорт да, тут приколы есть такие...Типо казалось бы лучше использовать его для циклов, но все по прежнему пихают инт\
Пашок🗽
Мб глупо байты считать 🤷♂
Bogdan
мне кажется это ещё со времен плюсов зародилось и си
Bogdan
giorgio
float просто меньше занимает
Bogdan
типо если с дабл пропадут копейки и всё ещё не так трагично, то вот с флоатом пропадёт слишком многое
Bogdan
ладно я встречал где-то ситуацию где работу с финансами даже в транзакцию не обернули
Bogdan
я вот представляю что будет если пустить финансы по флоату и без транзакции, тупо такой лям пропал, а это не наши проблемы
Alexandr
Мб глупо байты считать 🤷♂
Я кодил на микроконтроллерах, там каждый байтик экономишь. Байт вместо инт, чар вместо стринг. А насчёт дабл два раза подумаешь, нужен ли он тебе)
Bogdan
Bogdan
я просто и думаю на Java можно не лучшая идея
Bogdan
типо то что он создался для холодильника не делает его идеальным для работы с железом
giorgio