Java

Aug. 3rd, 2006 10:01 pm
metaclass: (Default)
[personal profile] metaclass
Это что, получается, в Java нет денежного типа с математическими операторами, и перегрузки операторов тоже нет?
Они там в Sun норкоманы что ле все?

Date: 2006-08-03 07:07 pm (UTC)
From: [identity profile] yakov-sirotkin.livejournal.com
Денежный тип очень сложным может быть: разные валюты, округление и всё такое...

Перегрузки, конечно, нет.

Date: 2006-08-03 07:16 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Странно. В принципе, сильно заумный денежный тип делать смысла нет - все равно все варианты учесть не получиться. Хватило бы 64-битного целого деленного на степень десятки, как это в дельфи сделано, и точной арифметики, выражаемой операторами, а не методами.
Но без перегрузки останется только надется, что архитекторы языка в sun слезут с иглы и сделают :)

Date: 2006-08-03 07:22 pm (UTC)
From: [identity profile] yakov-sirotkin.livejournal.com
Я видел гораздо более сложные денежные типы, например, биржевые котировки иногда нужно обображать как 5 3/4. Плюс, проценты ещё бывают сложные, тут по-любому точности не хватит. 64-битное целое - это просто детский сад.

Столько в Sun Microsystems не курят, чтобы ввести перегрузку операторов:) В этом вся соль языка, чтобы не было возможносте, которые сделали бы код непонятным.

Date: 2006-08-03 07:29 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Сложные проценты и прочие хитрости обычно для каждого проекта свои, их наверно на уровень языка вытаскивать не стоит. Но тот пример, что там приведен - потеря точности при вычитании двух чисел - встречаться должен очень часто, чтобы для таких случаев сделать отдельный тип.

Перегрузка операторов может и излишество, но язык без простого денежного типа - это какое-то безумие.

Date: 2006-08-03 07:43 pm (UTC)
From: [identity profile] yakov-sirotkin.livejournal.com
Универсальный язык должен предоставлять фундаментальные типы данных, денежный тип, безусловно, к таковым не относится.

Возможно, для Delphi это и имело смысл, чтобы быстро клепать бизнес-приложения. Но где сейчас Borland-то? А для любого серьёзного приложения лучше сразу свой тип для денег создавать.

Date: 2006-08-03 11:23 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
> язык без простого денежного типа - это какое-то безумие

Есть такое понятие, как "виртуальная машина". В виртуальной машине только базовые понятия. Даже String это просто крутой объект.

Вы можете смеяться, но валюта -- это наворот и нужна далёким от бухгалтерии людям довольно редко. Люди пользуют или double, или long (при отображении делят на 100). Я в курсе о межгалактической проблеме округления копейки, но вообще-то западные люди жизнь тратят не на подобные долбоебизмы. В банках м.б. и тратят, но остальные нет.

Насчёт перегрузки операторов -- есть компилятор от Роджера Бэкона из ИБМ, там от много ништяков пореализовал. Закомпиляй в .class и тащись. Вообще Java не оптимальный уровень решения бухгалтерских задач, есть куча поверх него интерпретаторов с перегрузкой чего хошь. Перегрузку они принципиально отказываются делать, опыт C++ показал злоупотреблятство и чреватость.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 1st, 2025 12:29 pm
Powered by Dreamwidth Studios