Size: a a a

Programming Offtop

2020 December 12

BP

Bogdan Panchenko in Programming Offtop
мимо
источник

BP

Bogdan Panchenko in Programming Offtop
GGorAA Official
а шо оно вывело?)
2 2.5 2.5 2
источник

BP

Bogdan Panchenko in Programming Offtop
А теперь кто знает почему ?
источник

Kd

Konstantin dmz9 in Programming Offtop
Bogdan Panchenko
А теперь кто знает почему ?
потому что недробное число превратилось не в децимал а в бигинт? под капотом
источник

BP

Bogdan Panchenko in Programming Offtop
Konstantin dmz9
потому что недробное число превратилось не в децимал а в бигинт? под капотом
нет, числа маленкие бигинта вообще не создается
источник

BP

Bogdan Panchenko in Programming Offtop
потому что разрабы языка подумали что вот это будет хорошей идеей: this.divide(other, RoundingMode.HALF_EVEN)
источник

BP

Bogdan Panchenko in Programming Offtop
в случае с дабл у нас создается bigDecimal с scale = 1 позтому все нормально, но если нужно 2-е цифры после комы то уже беда. с интом хуже, оно создается с scale = 0. А приуказании точности округляется именно к первому числу
источник

BP

Bogdan Panchenko in Programming Offtop
println("int ${ 10 / 8}")
println("double ${ 10.0 / 8.0}")
println("decimalFromDouble ${ 10.0.toBigDecimal() / 8.0.toBigDecimal()}")
println("decimalFromInt ${ 10.toBigDecimal() / 8.toBigDecimal()}")


1    1.25    1.2    1
источник

BP

Bogdan Panchenko in Programming Offtop
Bogdan Panchenko
потому что разрабы языка подумали что вот это будет хорошей идеей: this.divide(other, RoundingMode.HALF_EVEN)
поулчаеться что котлин все таки питон, ведь там тоже банковское округление :D
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
в случае с дабл у нас создается bigDecimal с scale = 1 позтому все нормально, но если нужно 2-е цифры после комы то уже беда. с интом хуже, оно создается с scale = 0. А приуказании точности округляется именно к первому числу
Именно поэтому эту радость и не надо тащить в стдлибу
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
поулчаеться что котлин все таки питон, ведь там тоже банковское округление :D
Видимо надо было выбрать что-то, вот и выбрали.
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
Именно поэтому эту радость и не надо тащить в стдлибу
BigDecimal ? Согласен
источник

BP

Bogdan Panchenko in Programming Offtop
Alexander Nozik
Видимо надо было выбрать что-то, вот и выбрали.
ну почему не обычный divide
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
BigDecimal ? Согласен
Да, все неоднозначные математические операции
источник

BP

Bogdan Panchenko in Programming Offtop
хотя джавадок интересный: This rounding mode is analogous to the rounding policy used for float and double arithmetic in Java. This mode corresponds to the IEEE 754-2019 rounding attribute roundTiesToEven.
источник

Kd

Konstantin dmz9 in Programming Offtop
Bogdan Panchenko
поулчаеться что котлин все таки питон, ведь там тоже банковское округление :D
если деньги считать то кстати, тож недавно как раз спрашивал за джавовскую библиотечку, решил пока не тащить но она тоже кстати на бигдецималах😂
источник

Kd

Konstantin dmz9 in Programming Offtop
да и вообще денежные рассчеты... сам уже сколько раз проклял себя, просто надо не считать бабло в числах, лютый пиздец
источник

BP

Bogdan Panchenko in Programming Offtop
Konstantin dmz9
да и вообще денежные рассчеты... сам уже сколько раз проклял себя, просто надо не считать бабло в числах, лютый пиздец
ага, но мне для тестов нужно было (код выше) и именно там напоролся, хотя в проде все норм было (там всегда были дробные с scale = 4), и мне считать нужно было не совсем деньги, но точность тоже важна
источник

BP

Bogdan Panchenko in Programming Offtop
@noraltavir как считаете стоит делать кип с прозьбой выпилить операторы для BigDecimal ? Они в итоге мешают, лучше уж я свои сделаю гдже нужно
источник

AN

Alexander Nozik in Programming Offtop
Bogdan Panchenko
@noraltavir как считаете стоит делать кип с прозьбой выпилить операторы для BigDecimal ? Они в итоге мешают, лучше уж я свои сделаю гдже нужно
Выпилииь нельзя что один раз впилено. Issue не помешает в трекере. Ну и свои легко добавить поверх.
источник