|
|
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола Питерский Код: java 1. Тебе - двойка. Дальше выделенного смотреть уже неинтересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 18:41 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
авторВ делфи если положил в переменную Currency число в копейках - то при чтении читается точно такое число - т.е. никогда нет никакой погрешности. раздели сумму 100руб на 33шт - что получишь? а потом умнож полученную цену на 10000шт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 18:44 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола ПитерскийА вот в жаве: Код: java 1. В java - BigDecimal, а double - у идиотов. Ничего личного, просто факт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 08:31 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Начался уже откровенный срач. В жаве я начинающий - может чего-то и не понимаю, но я очень хорошо знаю делфи и уж поверьте такой хрени там нет. Почему здесь "ошибка": Код: java 1. ??? Почему одни из вас говорят что можно в финансовых расчетах использовать double, а остальные говорят что только BigDecimal? Если переменная double - то в какой тип поля в базе данных нужно сохранять эту переменную? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:02 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола ПитерскийВ делфи если положил в переменную Currency число в копейкахПопробуйте, но только с double (а-ля Extended , или как там точно, уже не помню) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:05 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Тема double в финансах - жуткий боян. Погугли хотя-бы статьи. Их полно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:07 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола ПитерскийВ жаве я начинающий - может чего-то и не понимаю, но я очень хорошо знаю делфи и уж поверьте такой хрени там нет. Есть. То, что точные данные включая денежные, нужно хранить только в числах с фиксированной запятой- тема старше, чем 90% здешних обитателей. Требования на разработку Ada (точнее на конкурс, где она выиграла) были написаны что-то около 1980 года. Микола ПитерскийПочему одни из вас говорят что можно в финансовых расчетах использовать double, а остальные говорят что только BigDecimal? Если переменная double - то в какой тип поля в базе данных нужно сохранять эту переменную? Я отвечаю только за себя. В oracle, к примеру, number - это числа с фиксированной точкой. Вот в них и надо хранить деньги. В java - BigDecimal. Кто говорит про double - пусть дальше говорит. В delphi Curency это как раз усечённый аналог BigDecimal, хоть и реализованный по-другому. Хочешь- напишу Curency в java - делов-то на час-другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:17 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
UsmanМикола ПитерскийВ делфи если положил в переменную Currency число в копейкахПопробуйте, но только с double (а-ля Extended , или как там точно, уже не помню) Зачем мне пробовать double в делфи - если там для этого есть Currency? Я просто хочу узнать как в жаве можно работать с финансовыми данными? В какой тип переменной нужно сохранить число, например 122.52 чтобы там действительно было это число а не хрень в виде 122.519999999... И поверьте я погуглил достаточно этот вопрос - но ответов нет - и я понял что на джаве финансовые расчеты не делают. Я задал простые вопросы - ответьте пожалуйста на них, а не посылайте туда где нет ответов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:19 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, спасибо - теперь я понял. Моя ошибка в том что я пытался в BigDecimal ложить double, а нужно строку и тогда все встает на свои места. Только вот напрягает что в в BigDecimal нет простых арифметических операций (+, - и т.д) а все делается только через методы - почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:29 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Блин - новые проблемы. Я на жаве пишу только под андроид - там тоже есть BigDecimal, но там нет методов для работы с данным типом данных с базой данных - т.е. в андроиде есть только getDouble и getFloat, а вот в обычной жаве попробовал: Код: java 1. 2. тут есть getBigDecimal. А как тогда работать с финансами в андроиде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:40 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола Питерский А как тогда работать с финансами в андроиде? Таки написать Curency? :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:45 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Alexey TominМикола Питерский А как тогда работать с финансами в андроиде? Таки написать Curency? :D А можно написать Curency, в котором будут +,-,*,\ ??? Потому как если расчеты делать через методы - то крыша поедет - н-р какое среднеквадратическое отклонение по гаусу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 09:52 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола ПитерскийAlexey Tominпропущено... Таки написать Curency? :D А можно написать Curency, в котором будут +,-,*,\ ??? Потому как если расчеты делать через методы - то крыша поедет - н-р какое среднеквадратическое отклонение по гаусу :) Нет, нельзя. Значит long ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:01 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Если использовать BigDecimal - то простое выражение 122.52*12.8/100 превращается в плохочитаемую хрень - а есть же много более сложных выражений со скобками, округлениями, получениями максимальних, мин. значений, средних внутри выражения, а если это делать через методы BigDecimal то одна строка выражения превращается в страницу кода, в котором как и что работает можно разобраться только под отладчиком. Я понимаю что Object +(-*\) Object это неправильно. А может есть всетаки что-то нормально удобоваримое для финансовых расчетов в жаве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:09 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Alexey TominНет, нельзя. Значит long Ну так я так и выкрутился. Если это деньги - то храним их в копейках. Ноооо! Есть например содержание драгметаллов в изделии, сегодня это 3 знака после запятой, завтра 4, послезавтра 5 -то есть заранее "зарезервировать" нужный множитель не получится. В общем - это тоже совсем не удобно. Думал спрыгнуть с делфи на джаву - так как она намного удобнее, но из-за этой хрени переезд придется отложить навсегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:16 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола ПитерскийПотому как если расчеты делать через методы - то крыша поедет - н-р какое среднеквадратическое отклонение по гаусу :)Эт точно ! Можно запилить спец. класс по формату шаблона Строителя (pattern Builder): Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:25 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Вот не понимаю - жава такой класный язык, но почему в ней нет таких простых типов переменных как decimal, currency, которые есть даже в давно вымершем делфи? Или всетаки верно утверждение - что джава для финансовых расчетов не предназначена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:37 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола Питерский, Та хрень, что в BigDecimal есть везде. Просто в BD она управляемая. Всего делов то перед показом округлить. Грубо говоря Код: java 1. Выдает 15.68256 В чем тут сложность с вычислениями. Вопрос "куда девать остаток копеек" надо решать с прикладниками в соответствии с тем, как принято. Но про них надо знать. И указывать необходимую точность в каждой операции , а не задумываться в конце - что это было? Наличие черного ящика с думателем внутре создает иллюзию, что все посчитано верно. Тут у бухгалтеров, банкиров , биржевиков и т.п. могут быть разные подходы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:39 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
С округлением вопросов нет - в жаве смотрю есть очень много разных типов округлений, а вот в делфи был только один и он для бухгалтерии не подходил - приходилось свой алгоритм писать. Я понял - в жаве используем BigDecimal, а в андроиде long. И кто сказал - что код должен быть таким простым как в делфи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:52 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола Питерский, Можно и в Ведройде BigDecimal. В конце концов, читать строки из базы тоже ведь не запрещено. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:57 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Ну или Blob ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 10:59 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевМикола Питерский, Можно и в Ведройде BigDecimal. В конце концов, читать строки из базы тоже ведь не запрещено. :) Точно! Надо проверить - но наверное будет проблемы с разделителем (у нас точка, у них запятая)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 11:06 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола Питерский, Ну уж сделать так, чтобы в базе был один и тот же разделитель не вопрос. Можно хоть мантиссу с ординатой в разных строках хранить. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 11:08 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Спасибо ребята! Политику партии понял - наверно буду переезжать с абракадабры на жаву. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 11:13 |
|
||
|
как хранить деньги в int long or bigDecimal ?
|
|||
|---|---|---|---|
|
#18+
Микола ПитерскийДумал спрыгнуть с делфи на джаву - так как она намного удобнее, но из-за этой хрени переезд придется отложить навсегда. Спрыгивать надо на scala. Для начала дополнительный бонус- синтаксис человеческий. А потом и функциональщину подтянешь. Правда как это на ведроид идёт- не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 11:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38914553&tid=2125659]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 446ms |

| 0 / 0 |
