Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.02.2015, 11:00
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
Выполняю вот это: Код: java 1.
и получаю: Код: java 1.
как так - вроде по логике должно быть 0.52 ? И второй вопрос - это результат моей попытки получить дробную часть числа. Может есть более элегантный способ это сделать? Код: java 1. 2. 3.
Модератор: Изменен заголовок ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 11:03
|
|||
---|---|---|---|
Вычитание из double - почему такой результат? |
|||
#18+
Я догадываюсь, что за хрень и вроде как обходил её, но, к сожалению, сейчас пока не могу подсказать. Будь добр, придумай нормальное название теме. :) П.С. http://stackoverflow.com/questions/8148684/what-is-the-best-data-type-to-use-for-money-in-java-app ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 11:50
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
Новое название темы: вычитание из double - почему такой результат? И не думал что жава такую подлянку подкинет - все до этого было просто идеально - был вроде идеальный язык. В делфи с double таких непоняток не возникало, а если и были проблемы - то для дробных чисел там был тип currency - в жаве вижу он тоже есть - но он совсем не для расчетов, а чтобы получить данные по деньгам из системы и вместо double рекомендуют использовать BigDecimal в котором все операции только через его методы и на входе строка. Как так - это же куча плохо читаемого кода? Из базы получаем цену, остатки и т.д. обязательно в строку, затем с помощью currency определяем какой разделитель между целой и дробной частью, затем разделяем эту строку на целую и дробную часть и помещаем их в ДВЕ переменные BigDecimal и дальше с их помощью делаем опять кучу кода. Может всетаки есть какой-то более простой способ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 12:22
|
|||
---|---|---|---|
Вычитание из double - почему такой результат? |
|||
#18+
Микола ПитерскийМожет всетаки есть какой-то более простой способ??? float? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 12:43
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
Кароче жава вообще не годится для финансовых расчетов: Код: java 1. 2.
вывод: Код: java 1. 2.
на ней только игрушки писать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 14:41
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
Короче результат моих "умозаключений" следующий: хоть SQLLite и поддерживает поля типа numeric(19,2) об этом забываем как и о функциях чтения\записи в базу getDouble, getFloat, put(double d), put(float f ) - иначе там будет часто храниться то что вы вообще не предполагаете. Нужно использовать только целые типы полей, т.е. integer, biginteger (long) и работать с ними соответствующими функциями. Если это суммы - то храним число в копейках, если вес - то число в граммах и т.д.. Иначе - посадят с конфискацией :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 14:56
|
|||
---|---|---|---|
Вычитание из double - почему такой результат? |
|||
#18+
да это похрен. при выводе инфы и , нормальном округлении, все равно получится нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 15:14
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
Джибс, у меня при выводе получалось отклонение на 1 копейку по многим записям и в сумме набегает очень много. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 15:34
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
И нельзя делать промежуточные расчеты результатом которых станет тип double: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
вывод: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 16:03
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
Джибсда это похрен. при выводе инфы и , нормальном округлении, все равно получится нормально. Одно дело когда это расчет зарплаты - то похрен что там посчиталось меньше на пару рублей, другое дело если это программа по учету н-р драгметалов, в которой оператор вводит "содержание драгметалла в изделии 0.52 грамма" , а на самом деле в базе сохранится 0.51999664 грамма, а если таких изделий много - то отклонение в общей сумме будет очень большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 16:35
|
|||
---|---|---|---|
Вычитание из double - почему такой результат? |
|||
#18+
Микола ПитерскийДжибсда это похрен. при выводе инфы и , нормальном округлении, все равно получится нормально. Одно дело когда это расчет зарплаты - то похрен что там посчиталось меньше на пару рублей, другое дело если это программа по учету н-р драгметалов, в которой оператор вводит "содержание драгметалла в изделии 0.52 грамма" , а на самом деле в базе сохранится 0.51999664 грамма, а если таких изделий много - то отклонение в общей сумме будет очень большое. согласен на 100%! Недавно столкнулся с этим. Деньги стал хранить в копейках (int64), но это не дело конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 16:40
|
|||
---|---|---|---|
Вычитание из double - почему такой результат? |
|||
#18+
Микола ПитерскийДжибсда это похрен. при выводе инфы и , нормальном округлении, все равно получится нормально. Одно дело когда это расчет зарплаты - то похрен что там посчиталось меньше на пару рублей, другое дело если это программа по учету н-р драгметалов, в которой оператор вводит "содержание драгметалла в изделии 0.52 грамма" , а на самом деле в базе сохранится 0.51999664 грамма, а если таких изделий много - то отклонение в общей сумме будет очень большое. не, ну если такая точность, то может быть. я как то не обращал внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 16:55
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
ДжибсМикола Питерскийпропущено... Одно дело когда это расчет зарплаты - то похрен что там посчиталось меньше на пару рублей, другое дело если это программа по учету н-р драгметалов, в которой оператор вводит "содержание драгметалла в изделии 0.52 грамма" , а на самом деле в базе сохранится 0.51999664 грамма, а если таких изделий много - то отклонение в общей сумме будет очень большое. не, ну если такая точность, то может быть. я как то не обращал внимание. Я немного не так написал: оператор вводит "содержание драгметалла в изделии 0.52 грамма" , а на самом деле в double переменной сохранится 0.51999664, а при записи в базу SQLite отрежет в свой numeric(3,2) число 0.51 - т.е. на каждой сотне изделий отклонение в учете золота будет 1 грамм !!! Это капец. Джибс, ты же вроде провайдеры для БД пишешь - как ты всеже юзаешь поля типа numeric(,1..10) ? Потому как в целых мне хранить как-то стремно - тоже много лишней работы. А можно ли в поле типа numeric(,1..10) записать строку - типа put(, String s) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 17:15
|
|||
---|---|---|---|
Вычитание из double - почему такой результат? |
|||
#18+
да я как то суммы не хранил. а последний проект, использую больше как key-val хранилише. мне так надело постоянно менять структуру БД, и делать поддержку версионности, хотя для этого уже полно инструментов и конверторов. что я ушел в хранение данных в json там вообще все равно сохраняю строку а когда выдергиваю, собираю в модели объекты. данных у меня много не бывает, по этому не критично. понятно что просто key-val туп не обойтись, приходится некоторые поля, для селектов, все же дублировать "нормальными" полями ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 17:25
|
|||
---|---|---|---|
|
|||
Вычитание из double - почему такой результат? |
|||
#18+
Джибс что я ушел в хранение данных в json там вообще все равно Я давно работаю с JSON - но о хранении в нем не слышал. Ты что жейсоновскую строку в Мемо поле сохраняешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.02.2015, 23:23
|
|||
---|---|---|---|
Вычитание из double - почему такой результат? |
|||
#18+
Джибсда я как то суммы не хранил. а последний проект, использую больше как key-val хранилише. мне так надело постоянно менять структуру БД, и делать поддержку версионности, хотя для этого уже полно инструментов и конверторов. что я ушел в хранение данных в json там вообще все равно сохраняю строку а когда выдергиваю, собираю в модели объекты. данных у меня много не бывает, по этому не критично. понятно что просто key-val туп не обойтись, приходится некоторые поля, для селектов, все же дублировать "нормальными" полями не, ну это не выход.... это костыли! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=13&mobile=1&tid=1331414]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 256ms |
total: | 401ms |
0 / 0 |