|
|
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Итак, пару примеров кода. Код: java 1. 2. Код: java 1. 2. Код: java 1. 2. Код: java 1. 2. Объясните кто-нибудь почему так. Проверил в сишарпе, там все нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 14:54:46 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
junior_devОбъясните кто-нибудь почему такМагия данных. Читать про приближённые вычисления вообще и про устройство компьютерных вещественных чисел - в частности. Если читать лень, то просто запомните, что "десять в отрицательной степени" не может быть представлено конечной двоичной дробью.Проверил в сишарпе, там все нормально."Смешно". Хотите округления - укажите в строке формата, скока точно граммов... знаков вам нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 15:01:25 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Добрый день, junior_dev! > double x = 31.3 + 0.97; > System.out.println(x); // Выводит 32.27, ОК > > > double x = 32.3 + 0.97; > System.out.println(x); // Выводит 33.269999999999996, ВТФ??? Логично, во втором случае сумма больше 2^5, поэтому на "хвост" после запятой остаётся меньше места и ошибка округления (0.97 не представимо в виде конечной двоичной дроби) вылезает в 15й знак. То, что в java по-умолчанию 15 знаков после запятой, а в C# меньше- сути не меняет. -- Алексей Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 15:04:32 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Ясно, всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 15:24:10 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraТо, что в java по-умолчанию 15 знаков после запятой, а в C# меньше- сути не меняет. Количество знаков после запятой тут не при чем. Double тип один и тот же и там и там. В C# вывод в консоль реализует округление. В Java - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 15:34:33 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
junior_dev, выведи double в двоичном представлении. Готов спорить что результат в C# и Java будет одинаковым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 15:37:19 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
junior_dev, Спасибо за вопрос. Сразу вспомнил своих бывших коллег из других отделов, у которых в документах Excel с формулами внезапно появлялись расхождения в 1*10e-9. Для экономистов-юристов это вообще шок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 16:17:36 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Особенно интересно когда номера счетов пишут в формате double. Еще смешнее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 16:25:55 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
На самом деле ещё смешнее, что в Java, языке, который теперь служит в основном для программирования безнес-логики всяческих приложений, до сих пор нет встроенной точной десятичной арифметики, и нет соответствующего типа данных. (встроенного). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 19:15:14 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
MasterZivдо сих пор нет встроенной точной десятичной арифметики, и нет соответствующего типа данных. (встроенного).1. А где есть? 2. Что ещё предложите встроить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 22:21:32 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
C# есть. А в Java нет примитивного типа для работы с фин.арифметикой. И это действительно проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2013, 22:38:58 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
авторC# есть. А в Java нет примитивного типа для работы с фин.арифметикой. И это действительно проблема. java.lang.BigDecimal не подходит что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 09:40:12 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
maytonC# есть. А в Java нет примитивного типа для работы с фин.арифметикой. И это действительно проблема. То есть java.math.BigDecimal, сорри http://docs.oracle.com/javase/6/docs/api/java/math/BigDecimal.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 09:42:28 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
еще топикстартеру можно загуглить ieee-754 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 10:02:48 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
JavaSpringFrameworkHibernateGWTавторC# есть. А в Java нет примитивного типа для работы с фин.арифметикой. И это действительно проблема. java.lang.BigDecimal не подходит что-ли? А ты пробовал когда-нибудь закодить на ней какую-то простую расчётную формулу? Проверить что-то. Посчитать процент и сложить. А потом сравнить с другим языком в котором есть хотя-бы реализация инфиксных операций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 10:57:50 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
mayton, да вам не длинная арифметика то нужна, а перегрузка операторов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2013, 11:39:13 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Добрый день, Basil A. Sidorov! > 1. А где есть? Ada :) Соответственно pl/sql. > 2. Что ещё предложите встроить? По хорошему надо было сделать определение операций. Давно было показано, зачем это надо. Но Гослинг, как чукча- не читатель был... -- Алексей Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 09:14:36 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Ну а так BigDecimal x = new BigDecimal(0.3 + 0.97,new MathContext(4, RoundingMode.HALF_EVEN)); System.out.println(x); // Выводит 1.27, ОК x = new BigDecimal(31.3 + 0.97,new MathContext(4, RoundingMode.HALF_EVEN));; System.out.println(x); // Выводит 32.27, ОК x = new BigDecimal(32.3 + 0.97,new MathContext(4, RoundingMode.HALF_EVEN));; System.out.println(x); // Выводит 33.27 x = new BigDecimal(49.3 + 12.97,new MathContext(4, RoundingMode.HALF_EVEN));; System.out.println(x); // Выводит 62.27 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 10:41:28 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
just_vladimirmayton, да вам не длинная арифметика то нужна, а перегрузка операторов ... Здесь - комплексная проблема. И попытка использовать double в операциях с деньгами - это отчасти плата за неудобство BigDecimal. Я много сжёг своей кармы в попытках исправить продакшен код где эти операции имели место. Но кода много - а я один. Даст бог в Scala концепция другая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 14:01:41 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
maytonЗдесь - комплексная проблемаА ещё бизнесу важен кадровый вопрос, а кадрам важны даты и интервалы между ними. Давайте встроим календарь и интервальную арифметику прямо в язык. Потом вспомним, что на компьютере у нас часы и реализуем два варианта - с учётом часовых поясов и без. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 16:47:13 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
99% задач с датами покрываются простейшей арифметикой наподобие Oracle Date. Арифметические операции с датой трактуются как сложение и вычитание дробного числа суток. Пример Код: plsql 1. возвращает вчерашний день. Разумеется функции работают в контексте локали. И разумеется код - самодостаточный. Некто Антон Кекс в своих видео-посланиях цивилизации джавистам справедливо обращает внимание на слёзную просьбу бизнес-аналитиков - как можно больше логики переносить в БД . И думается на то есть основания. И они лежат не в плоскости DBMS/Java а просто исходят из объективной проблемы. Бизнес-расчёты в Java-коде завуалированы. Код "шумит" лишними сущностями и понять ЧТО собственно мы вычисляем - довольно затруднительно. Собственно Java код не годится для обратного инжинеринга бизнес формулы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 17:14:29 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
mayton, В 18:00 местного времени владивостокский офис оформил приказ о приёме на работу "с сегодняшнего числа". Какую дату увидит московский офис завтра? Сегодня он уже спит. Ну или стандартная задача из ТК по расчёту отпускных - выходные учитываются, а праздничные - нет. P.S. Я не против того, что мы живём в мире всё возрастающего комфорта - мне это очень даже нравится. Я против того, чтобы объявлять недостаток комфорта глобальным дефектом, требующим исправления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 19:04:52 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Давай развивать твою мысль. Через 300 лет нам понадобиться несколько дополнительных сущностей в локализации. Нам надо будет указывать номер планеты в солнечной системе. Номер галлактики. Номер скопления или кластера и учитывать прочие забавные эффекты физики света и времени о которых писал старый волосатый и усатый немец. Поэтому давай не будем разбивать себе лоб об пол решая ОБЫЧНЫЕ каждодневные задачи. Про локализацию я упомянул. Я живу и работаю в Украине и поэтому для всех местных проектов часовой пояс - UTC+2 и даст бог нет пока проблем со временем во Владивостоке. Тоже самое с decimal и java.lang.BigDecimal. Это разный подход. Я не буду спорить со столпами ООП на тему концептуальности, нужности и ненужности примитивных типов и перегрузки операций. Но я знаю что программист как человек устроен так что он ВСЕГДА упрощает себе задачу. Он всегда старается писать компактно и лаконично. Ему иногда мешают очень шумные маркетинговые технологии но я верю в то что здравый смысл восторжествует. Дайте в Java примитивный тип decimal и все будут рукоплескать. Унылое бормотание теоретиков на тему того что дескыть неконцептульаненько и некрасивинько никого не будут волновать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 19:15:51 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
maytonДайте в Java примитивный тип decimal и все будут рукоплескатьКак уже упоминалось, не decimal вам требуется, а перегрузка операторов.Унылое бормотание теоретиковОптимистичные практики должны понимать, что long достаточен для хранения бюджета всей страны в копейках. Даже после масштабирования на десять, чтобы аккуратно работать с округлением. P.S. А, типа, с double результат форматировать не надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 19:36:09 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovmaytonДайте в Java примитивный тип decimal и все будут рукоплескатьКак уже упоминалось, не decimal вам требуется, а перегрузка операторов.Унылое бормотание теоретиковОптимистичные практики должны понимать, что long достаточен для хранения бюджета всей страны в копейках. Даже после масштабирования на десять, чтобы аккуратно работать с округлением. Учитывая забавные случаи внезапных инфляцией (гипер-инфляцией) которые некоторы страны переживали, такой способ хранения денежных величин - спорный. Впрочем надо посчитать. Вообще-то decimal, BCD, symbolic и прочие псевдо-символьные типы создавались с целью обеспечения 100% переносимости бухгалтерских вычислений "на бумаге". Я еще не готов находить конкретные юзкейсы этих случаев но давайте вместе с вами поищем эти случаи. Например - обеспечивать округление младших дробных разрядов вледствие частного от деления. Вам ведь придётся переводить этот long в строку, а это явно лишняя операция да и попахивает антипаттерном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 21:11:45 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
maytonУчитывая забавные случаи внезапных инфляцией (гипер-инфляцией) которые некоторы страны переживали, такой способ хранения денежных величин - спорный. Впрочем надо посчитать.В сравнении с double??? Я вас умоляю. 2^63 против 2^56 может вызывать какие-то вопросы? До десятков квадрилионов не дотягивают, вроде, ни японцы, ни счастливые обладатели песет.Вообще-то decimal, BCD, symbolic и прочие псевдо-символьные типы создавались с целью обеспечения 100% переносимости бухгалтерских вычислений "на бумаге"В этом контексте существенна именно десятичность арифметики. double не может обеспечить такой переносимости в принципе. Но используется. long обеспечивает такую переносимость просто по определению числа с фиксированной точкой. Но его использование вызывает вопросы. Практики продолжают отжигать. Уж простите мой сарказм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 22:02:06 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Забудьте про double!! Я его не обсуждаю вообще. Вы упомянули про long (очевидно имеется в виду 64-х битное целое). ОК. Давайте его и обсудим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 22:06:54 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
maytonВы упомянули про long (очевидно имеется в виду 64-х битное целое). ОК. Давайте его и обсудим.А что его обсуждать? Десятичный логарифм двух ~=0,3010, 64 * 0,3010 ~= 19,26 Восемнадцать гарантированных десятичных цифр и запас, позволяющий отследить переполнение при сложении. Для работы с десятыми копеек (одна запасная цифра) масштабируем на тысячу и получаем тысячу триллионов рублей. С валютной бухгалтерией чуть хуже, т.к. есть курсы, превышающие тысячу. Т.е. отразить продажу более ста миллиардов рублей - может и не получиться. С другой стороны - нафига японцам такая куча деревянных??? Хранение в базе? Для нового проекта нет принципиальной разницы - определить numeric(18,3) или numeric(18,0), для существующего - или конвертация типа столбцов (разово, но, возможно, медленно) или преобразование значений. Можно на стороне базы, можно через длинную арифметику на стороне ява-кода. По трудозатратности - не могу оценить, но вряд ли возня с рефакторингом double существенно проще. P.S. В финансовой арифметике "удобно" только сложение-вычитание. Как только начались проценты - прощай, оружие простота. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 08:25:17 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, myton Оригинальное обсуждение точности знаков после запятой от топикстартера на целом типе Long :) Вы бы как-нибудь к земле поближе с небес спустились что ли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 11:09:02 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
sanBezВы бы как-нибудь к земле поближе с небес спустились что лиПочитайте про числа с фиксированной запятой. Может тогда начнёте понимать тривиальные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 12:44:54 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, 18 десятичных цифр - не вариант. Кстати предлагаю узнать следующий вопрос. Откуда у MS-SQL и Oracle в decimal, numeric, number появилось действующее ограничние в 38 десятичных разрядов. Думаю что эта цифра не с неба упала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 13:17:08 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsanBezВы бы как-нибудь к земле поближе с небес спустились что лиПочитайте про числа с фиксированной запятой. Может тогда начнёте понимать тривиальные вещи. Срочно бегу учиться тривиальным вещам! :) Может еще совет дадите как реализовать в гипотетической биллинговой (финансовой) системе вычисления без деления и умножения? С использованием только целого long. Или приведете пример системы с тарифами, в которой достаточно только сложения и вычитания. Пока вышесказанное вами насчет использования long похоже на описание сферического коня в вакууме. P.S. А почетное звание теоретега здесь не котируется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 13:45:40 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Добрый день, sanBez! > Может еще совет дадите как реализовать в гипотетической биллинговой > (финансовой) системе вычисления без деления и умножения? С > использованием только целого long. А в чём проблема использовать умножение и деление, считая в 0.1 копейках? Всё одно каждая операция должна округляться до копеек. > Пока вышесказанное вами насчет использования long похоже на описание > сферического коня в вакууме. У меня был опят написания модуля расчётов на long. Единица- 1/10 копейки. Зато считало реально быстро. PS: считались долги абонентов, поэтому ссылка на бюджет страны с гиперинфляцией не катит. -- Алексей Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 14:27:34 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraА в чём проблема использовать умножение и деление, считая в 0.1 копейках? Всё одно каждая операция должна округляться до копеек. Не всегда. У меня сейчас не копейки, а Квтч. Чел сидит, делает. Но например: переходящий остаток на следующий месяц в 0.3 кВтч, который может быть с плюсом или с минусом (в зависимости от округления в бОльшую или меньшую сторону: исходные значения например 1.7 или 2.3) надо учитывать. Гемора с вычислениями в целых мне что-то кажется много будет. GKS_SamaraУ меня был опят написания модуля расчётов на long. Единица- 1/10 копейки. Зато считало реально быстро. А что ты с целочисленным делением делал? Интересно, как реализовал. Там же обрезалочки идут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:03:40 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
sanBezА что ты с целочисленным делением делал? Интересно, как реализовал. Там же обрезалочки идутТоже мне бином ньютона ... Прибавили к делимому половину масштаба (5, 50 и т.д.) - получите "деление с округлением". P.S. Для масштаба равного единице - да, не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:12:34 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
sanBezМожет еще совет дадите как реализовать в гипотетической биллинговой (финансовой) системе вычисления без деления и умножения? С использованием только целого long.Натурально, с использованием положенных четёрых действий арифметики и масштабированием всех коэффициентов до целых. Для "процентовок" это, опять-таки, будет тысяча, т.к. ставок менее одной сотой процента, вроде, не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:16:12 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov всех Поправка высоты чёрточки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:17:45 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Добрый день, sanBez! >> А в чём проблема использовать умножение и деление, считая в 0.1 >> копейках? Всё одно каждая операция должна округляться до копеек. > > Не всегда. > У меня сейчас не копейки, а Квтч. Чел сидит, делает. Но например: > переходящий остаток на следующий месяц в 0.3 кВтч, Тем не менее можно постановить, что числа меньше 0.001 кВт*ч не учитываются. И считать в 0.0001 кВт*ч. >> У меня был опят написания модуля расчётов на long. Единица- 1/10 >> копейки. Зато считало реально быстро. > А что ты с целочисленным делением делал? Тупо в лоб: Код: sql 1. 2. 3. И далее после деления его вызывать. Код: sql 1. Вопрос, правда, в том, не является ли это преждевременной оптимизацией - а то м.б. лучше использовать BigDecimal и не мучатся. Но у меня проект был тестовым на тему "насколько java быстра", поэтому я выжимал все соки :) -- Алексей Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:17:50 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
maytonBasil A. Sidorov, 18 десятичных цифр - не вариантПлохо вам.Откуда у MS-SQL и Oracle в decimal, numeric, number появилось действующее ограничние в 38 десятичных разрядов. Думаю что эта цифра не с неба упала.Ну ограничение (какой-то стандартной) реализации. Похоже на "long два разА" - вполне разумный компромисс между "надо много" и "надо быстро". В REXX я ставил "numeric digits 2000" и вполне быстро получал ответ из этих самых тысяч цифр. Арифметика там именно десятичная. Пределом (по исчерпанию системных ресурсов), в моём случае, было что-то около четырёх тысяч цифр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:26:48 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
GKS_Samara Вопрос, правда, в том, не является ли это преждевременной оптимизацией - а то м.б. лучше использовать BigDecimal и не мучатся. Но у меня проект был тестовым на тему "насколько java быстра", поэтому я выжимал все соки :) Сравнивал BigDecimal и свой результат? Насколько выигрыш получил? Меня пока BigDecimal устраивает, сейчас не слишком большие объемы вычислений. По сравнению с вытаскиванием из базы мизер, насколько я помню (проект давнишний). Я так на будущее, может соломку где заранее подстелить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:29:01 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Есть ещё вариант с упаковкой девяти десятичных цифр в int32 как "три группы по десять бит". Вроде даже стандартизирован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:30:36 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Добрый день, sanBez! > Сравнивал BigDecimal и свой результат? Насколько выигрыш получил? Нет, не успел. Кризис настал, проект свернулся. > Меня пока BigDecimal устраивает, сейчас не слишком большие объемы > вычислений. > По сравнению с вытаскиванием из базы мизер, насколько я помню (проект > давнишний). > > Я так на будущее, может соломку где заранее подстелить... Опиши Num extends BigDecimal, а если надо - поменяешь на Num extends Long. -- Алексей Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:37:00 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
авторВ REXX я ставил Ради интереса - в каком году это было? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:43:08 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraОпиши Num extends BigDecimal, а если надо - поменяешь на Num extends Long. А зачем тогда при BigDecimal аналог твоего nround ? Тут так напрямую не очень красиво выйдет. Ладно, придут проблемы, тогда и буду решать. А пока не стоит заниматься преждевременной оптимизацией :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:49:33 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪРади интереса - в каком году это было?Район нулевых. С разбросом на пару лет в обе стороны. Что-то вроде AMD K6-2/300МГц/32Мб или 64Мб. OS/2. Считался, если правильно помню, факториал пятидесяти. Естественно, в цикле, а не рекурсивно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 15:52:30 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
chabapokеще топикстартеру можно загуглить ieee-754 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1033182&msg=14523312 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2013, 21:25:09 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
из всех присуцвующих только Basil A. Sidorov говорит дело о длинном лонге ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2013, 21:29:46 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
1. А где есть? Ну, не знаю... Transact SQL, Pl/SQL, С++ (в виде пользовательского типа, как расширение), common lisp, python 2. Что ещё предложите встроить? Предложу разрешить расширять Javа своими типами, как в С++, common lisp, python, C#, это как минимум. А так замечу, что Java -- язык для программирования бизнес-логики корпоративных приложений. Это по факту. По рождению -- конечно, это язык для программирования утюгов и холодильников, в таком языке, безусловно, точная десятичная арифметика не нужна. А вот в языке для программирования бизнес-логики корпоративных приложений обязана быть поддержка для точной десятичной арифметики, встроенная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 14:58:20 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
maytonДайте в Java примитивный тип decimal и все будут рукоплескать. Унылое бормотание теоретиков на тему того что дескыть неконцептульаненько и некрасивинько никого не будут волновать. Что может быть неконцептуального или некрасивого в возможности расширять язык пользовательскими типами? Если они конечно будут полными аналогами встроенных типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 15:00:35 |
|
||
|
Арифметика Джавы. WTF?
|
|||
|---|---|---|---|
|
#18+
MasterZivmaytonДайте в Java примитивный тип decimal и все будут рукоплескать. Унылое бормотание теоретиков на тему того что дескыть неконцептульаненько и некрасивинько никого не будут волновать. Что может быть неконцептуального или некрасивого в возможности расширять язык пользовательскими типами? Если они конечно будут полными аналогами встроенных типов. Это старый боян который я периодически достаю из чулана. И играю вальс - На Сопках Манчжурии. Забавно но олдскуль-генерейшн программеров которые знали что такое С++ стало меньше. Приходят студенты которые учились уже на Java. И они не то чтобы не знают про перегрузку операций. У них НЕТ СОМНЕНИЯ в том что инфиксные операции это плохо. Потому что дядька Госклинг или дядька Эккель так сказали. Я им говорю. - Раскройте глаза! Откройте учебник математики. А теперь откройте свой java исходник там где вы выгружаете BigDecimal из БД и пытаетесь с ним делать какие-то расчёты. Но ничего. На горизонте Scala. Ладно я устал. Иду заваривать чай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 23:01:18 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2128984]: |
0ms |
get settings: |
16ms |
get forum list: |
24ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
50ms |
get topic data: |
18ms |
get forum data: |
4ms |
get page messages: |
153ms |
get tp. blocked users: |
3ms |
| others: | 285ms |
| total: | 563ms |

| 0 / 0 |
