|
|
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Народ, может кто сталкивался. По какой-то причине при округлении чисел с плавающей запятой, цифра "5" округляется до меньшего, напимер: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вывод на экран : ROUND_HALF_DOWN = 13.546 ROUND_HALF_EVEN = 13.546 ROUND_HALF_UP = 13.546 если же Код: plaintext Вывод на экран : ROUND_HALF_DOWN = 13.547 ROUND_HALF_EVEN = 13.547 ROUND_HALF_UP = 13.547 Подскажите, каким махером выполнять округление, чтобы число 13.5465 всё-таки "превращалось" в 13.547 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 13:14 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_hНарод, может кто сталкивался. По какой-то причине при округлении чисел с плавающей запятой, цифра "5" округляется до меньшего, напимер: Советую почитать книгу как хранятся числа с плавующей точкой, и каким образом происходит округление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 13:41 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Евгений ПутилинСоветую почитать книгу как хранятся числа с плавующей точкой, и каким образом происходит округление. Молодца!!! Совет конечно дельный, не к месту ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 13:47 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Нашёл!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:10 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
ну и в чем фишка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:12 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
galishaну и в чем фишка ? Фишка ... ... Всё просто ... пишем свою функцию округления ... От Java я ожидал большего и был склонен думать, что просто по своему незнанию делаю округление неправильно, но количество отзывов на мою проблему (особенно на меня произвело незгладимое впечатление выскаживание товарища Евгения Путилина ) наводит на мысль, что глюк всё-таки в библиотеке языка программирования. Хотя могу и ошибаться (это только сугубо моё предположение) и возможно на этом форме найдётся человек, который даст верное решение. Заранее ему спасибо . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:33 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_h ... Подскажите, каким махером выполнять округление, чтобы число 13.5465 всё-таки "превращалось" в 13.547 Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:46 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
mozheyko_d andy_h ... Подскажите, каким махером выполнять округление, чтобы число 13.5465 всё-таки "превращалось" в 13.547 Код: plaintext 1. Фишка в том, что данный вызов (как и при BigDecimal.ROUND_CEILING) "превратит" в 13.547 даже число 13.5461 , что отходит от общих норм, например в MS Excel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 15:30 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_h(особенно на меня произвело незгладимое впечатление выскаживание товарища Евгения Путилина ) наводит на мысль, что глюк всё-таки в библиотеке языка программирования. Какие все умные... блин... Ошибка в библиотеке и все тут! Если в доке написано, что то делается так, а не иначе, значит это делается так, как написано в доке! Как говорится: "Дай человеку рыбу - и ты накормишь его один раз. Научи его ловить рыбу - и ты накормишь его на всю жизнь". Так что совет читать книги тебе дали правильно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 22:58 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_hНарод, может кто сталкивался. По какой-то причине при округлении чисел с плавающей запятой, цифра "5" округляется до меньшего, напимер: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вывод на экран : ROUND_HALF_DOWN = 13.546 ROUND_HALF_EVEN = 13.546 ROUND_HALF_UP = 13.546 если же Код: plaintext Вывод на экран : ROUND_HALF_DOWN = 13.547 ROUND_HALF_EVEN = 13.547 ROUND_HALF_UP = 13.547 Подскажите, каким махером выполнять округление, чтобы число 13.5465 всё-таки "превращалось" в 13.547 Предлагаю вспомнить из азов, что число 0.1 (одна десятая) в двоичном виде не представима конечным образом. Число 13.5465 тоже. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 09:36 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_hНарод, может кто сталкивался. По какой-то причине при округлении чисел с плавающей запятой, цифра "5" округляется до меньшего, напимер: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вывод на экран : ROUND_HALF_DOWN = 13.546 ROUND_HALF_EVEN = 13.546 ROUND_HALF_UP = 13.546 если же Код: plaintext Вывод на экран : ROUND_HALF_DOWN = 13.547 ROUND_HALF_EVEN = 13.547 ROUND_HALF_UP = 13.547 Подскажите, каким махером выполнять округление, чтобы число 13.5465 всё-таки "превращалось" в 13.547 Предлагаю вспомнить, что число 0.1 (одна десятая) в двоичном виде не представима конечным образом. Число 13.5465 тоже. Друними словами, в типе double они не могут быть представлены точно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Типы double и float слудет использовать только в научных расчетах. Чтобы считать деньги, они не подходят. Для похожести с Excel нужно использовать BigDecimal.ROUND_HALF_UP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 09:43 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_hФишка в том, что данный вызов (как и при BigDecimal.ROUND_CEILING) "превратит" в 13.547 даже число 13.5461 , что отходит от общих норм, например в MS Excel Да, ужас MS Excel это уже обще принятая норма. Сразу видно что человек совершенноне понимает разницу между числом с плавающей точкой и числом с фиксированной точкой. Еще раз советую почитай какиюнибуть книгу по численным методам и тогда не будет глупых вопросов, человек из Краснодара правильно написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 10:21 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Типы double и float слудет использовать только в научных расчетах. Чтобы считать деньги, они не подходят. Для похожести с Excel нужно использовать BigDecimal.ROUND_HALF_UP. Почему-то люди сразу думают о деньгах, хотя я работаю в НИИ и рассчёты как раз научные. BigDecimal.ROUND_HALF_UP - схожести с Excel не даёт (собственно, практически с этой константой мой вопрос и начинался) " Умникам ", любящим давать советы по прочтению той или иной литературы + филосовские изречения про рыбку, птичку и т.п. и не более того , могу только сказать, что книги безусловно читать надо (кстати, ни автора - ни названия указано не было, просто воздух потрясли), но форум для того и создан (на мой взгляд), чтобы помагать решать возникшие проблемы в быстром порядке. Теперь о глюках . Может я и слишком резко высказался по этому поводу (с Java я работаю недавно), но в Object Pascal (ток не надо снова умничать :"Вот и пиши на своем Пасквиле" ) есть функция Код: plaintext Код: plaintext 1. 2. 3. В результате я пришёл к выводу, что нужно писать свою функцию, где нужно: умножать->округлять до целого->делить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 10:49 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_h Типы double и float слудет использовать только в научных расчетах. Чтобы считать деньги, они не подходят. Для похожести с Excel нужно использовать BigDecimal.ROUND_HALF_UP. Почему-то люди сразу думают о деньгах, хотя я работаю в НИИ и рассчёты как раз научные. Ага, а в НИИ про численные методы не слышали? andy_h BigDecimal.ROUND_HALF_UP - схожести с Excel не даёт (собственно, практически с этой константой мой вопрос и начинался) andy_h " Умникам ", любящим давать советы по прочтению той или иной литературы + филосовские изречения про рыбку, птичку и т.п. и не более того , могу только сказать, что книги безусловно читать надо (кстати, ни автора - ни названия указано не было, просто воздух потрясли), Это то что дает поиск на озоне по численным методам Думаю это достаточно? andy_h но форум для того и создан (на мой взгляд), чтобы помагать решать возникшие проблемы в быстром порядке. Теперь о глюках . Может я и слишком резко высказался по этому поводу (с Java я работаю недавно), но в Object Pascal (ток не надо снова умничать :"Вот и пиши на своем Пасквиле" ) есть функция Код: plaintext Код: plaintext 1. 2. 3. В результате я пришёл к выводу, что нужно писать свою функцию, где нужно: умножать->округлять до целого->делить Ты что округляеш? тип числа какой? если это так и стоит в программе почему ты думаеш что это не число с фиксированной точкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 12:15 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_h " Умникам ", любящим давать советы по прочтению той или иной литературы + филосовские изречения про рыбку, птичку и т.п. и не более того , могу только сказать, что книги безусловно читать надо (кстати, ни автора - ни названия указано не было, просто воздух потрясли), но форум для того и создан (на мой взгляд), чтобы помагать решать возникшие проблемы в быстром порядке. ... В результате я пришёл к выводу, что нужно писать свою функцию, где нужно: умножать->округлять до целого->делить Мужык, я тебя люблю. Давай вместе похороним java? Это же не в какие ворота не лезет, какая тупая язычина. Даже окргулять как паскаль не умеет (не говоря уже про эксель). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 12:24 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Евгений если это так и стоит в программе почему ты думаеш что это не число с фиксированной точкой? потому что по умолчанию числа типа 3.14, 5.44 итд имеют тип double. т.е. Код: plaintext 1. 2. 3. ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 12:25 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Евгений Путилин Ты что округляеш? тип числа какой? если это так и стоит в программе почему ты думаеш что это не число с фиксированной точкой? ))) Умнейший !!! Что ж Вы всё пишите и пишите, а ответа я так пока не получил. Раз Вы так хорошо разбираетесь в этой теме и жёстко цепляетесь к терминологии. Давайте поступим следующим образом: 1 . Назовём числа 13.5461 и 13.5465 - вещественными . 2 . Напишите мне, ПОЖАЛУЙСТА , последовательность операторов на языке Java , неважно: толи через BigDecimal , толи через DecimalFormat , или любым другим известным Вам способом, но чтобы, при округлении 13.5465 до 3-х знаков после запятой получалось 13.547 , а число 13.5461 - 13.546 , соответственно. И всё ... Мне больше ничего не требуется ... В противном случае, на данном форуме, можно давать людям однотипные ответы на все их вопросы: "Читай книгу по Java, EJB, JDBC и пр." А форум закрыть, за ненадобностью .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 12:49 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Форум, уважаемый, нужен для вопросов, ОТВЕТЫ НА КОТОРЫЕ НЕ ПОЛУЧАЕТСЯ НАЙТИ В КНИГАх!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:19 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Во! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:23 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Кувалдин > Форум, уважаемый, нужен для вопросов, ОТВЕТЫ НА КОТОРЫЕ НЕ > ПОЛУЧАЕТСЯ НАЙТИ В КНИГАх!!!Тема==Ответить спокойнее. я тоже не понял. в книге написано, что данный код выведет 1.235, а выводит 1.234. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:24 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Объясни мне пожалуйста, почему у меня вот это работает? Код: plaintext 1. 2. 3. 4. 5. 6. TEST: 13.547 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:32 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
нашел решение: Код: plaintext 1. ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:37 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Кувалдин РоманВо! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. :-) Круто!!!!!! А теперь напиши мне ещё тысяч 5 (примерно столько записей в таблице БД) таких функций, правда значения иногда меняются, но я в тя верю, справишься :-))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:37 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Deady Кувалдин > Форум, уважаемый, нужен для вопросов, ОТВЕТЫ НА КОТОРЫЕ НЕ > ПОЛУЧАЕТСЯ НАЙТИ В КНИГАх!!!Тема==Ответить спокойнее. я тоже не понял. в книге написано, что данный код выведет 1.235, а выводит 1.234. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 Честно говоря, в доке по API я не нашел факта, что он округляет 0.5 до 1 или до 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:39 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. TEST2: 1.234 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:39 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=745&tid=2149990]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
117ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 446ms |

| 0 / 0 |
