|
|
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Кувалдин > Честно говоря, в доке по API я не нашел факта, что он округляет 0.5 до 1 или до 0.Тема==Ответить Rounding DecimalFormat uses half-even rounding (see ROUND_HALF_EVEN) for formatting. ROUND_HALF_EVEN public static final int ROUND_HALF_EVEN Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor. Behaves as for ROUND_HALF_UP if the digit to the left of the discarded fraction is odd; behaves as for ROUND_HALF_DOWN if it's even. Note that this is the rounding mode that minimizes cumulative error when applied repeatedly over a sequence of calculations. ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:42 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Посмотрел исходники класса BigDecimal. Вот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:49 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_h 1 . Назовём числа 13.5461 и 13.5465 - вещественными . Остановись. Помедитируй. Запись 13.5461 может представлять вещественное число с фиксированной точной, а может представлять вещественное число с плавающей точкой. Проглядывает свет в конце тунеля? 2 . Напишите мне, ПОЖАЛУЙСТА , последовательность операторов на языке Java , ... но чтобы, при округлении 13.5465 до 3-х знаков после запятой получалось 13.547 , а число 13.5461 - 13.546 , соответственно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. И всё ... Мне больше ничего не требуется ... Отнюдь! Тебе требуется знание двойичной и десятичных систем счисления, знание десятичных дробей и двух способов представления вещественных чисел. И не забыть подумать, почему создавать 256 объектов для одной операции округления не совсем уместно. В противном случае, на данном форуме, можно давать людям однотипные ответы на все их вопросы: "Читай книгу по Java, EJB, JDBC и пр." А форум закрыть, за ненадобностью .... А как тебе идея, что всё что нужно тебе сказали в первых нескольких ответах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:51 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
* Note: the results of this constructor can be somewhat unpredictable. * One might assume that <tt>new BigDecimal(.1)</tt> is exactly equal * to .1, but it is actually equal * to .1000000000000000055511151231257827021181583404541015625. * This is so because .1 cannot be represented exactly as a double * (or, for that matter, as a binary fraction of any finite length). * Thus, the long value that is being passed <i>in</i> to the constructor * is not exactly equal to .1, appearances notwithstanding. * <p> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:52 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Так что, andy_h, могу посоветовать вам преобразовывать double-значения в String-значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 13:54 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Кувалдин РоманОбъясни мне пожалуйста, почему у меня вот это работает? Код: plaintext 1. 2. 3. 4. 5. 6. TEST: 13.547 Объясняю: "13.5465" - строка, 13.5465 - число ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 14:05 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_h Кувалдин РоманОбъясни мне пожалуйста, почему у меня вот это работает? Код: plaintext 1. 2. 3. 4. 5. 6. TEST: 13.547 Объясняю: "13.5465" - строка, 13.5465 - число Вы бы вдумались в то, что Вам другие говорят. Если какие-то слова в ответе не понятны - спросите. Моя жена отнюдь не проргаммист и не математик, но в отличие от Вас, тему с округлениями усвоила с первого раза. Тогда я ей демострировал нечто вроде этого ( только на Visual Basic'е ): Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 14:20 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs .... Остановись. Помедитируй. ... Код: plaintext 1. 2. 3. 4. 5. andy_h ... В результате я пришёл к выводу, что нужно писать свою функцию, где нужно: умножать->округлять до целого->делить ... Теперь сам остановись, помедитируй .... И подумай, что нового ты предложил? тоже самое: писать свою функцию, где именно нужно: умножать->округлять до целого->делить NotGonnaGetUs ... Мужык, я тебя люблю. Давай вместе похороним java? Это же не в какие ворота не лезет, какая тупая язычина. Даже окргулять как паскаль не умеет (не говоря уже про эксель). Над этим тоже подумай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 14:21 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_hТеперь сам остановись, помедитируй .... И подумай, что нового ты предложил? А разве я должен был предложить что-то новое? Открой зёнки, почитай что ты писал: andy 2. Напишите мне, ПОЖАЛУЙСТА, последовательность операторов на языке Java, ... но чтобы, при округлении 13.5465 до 3-х знаков после запятой получалось 13.547, а число 13.5461 - 13.546, соответственно. Даже волшебное слово вспомнил..., а тут взял и обкакался. andyНад этим тоже подумай Над чем? Над моими чувствами к тебе? Хорошо. Подумал. Легче не стало. Всё ещё люблю до беспаметства за твою не поддельную простоту и наивную упёртось в то, чего в сущности не существует: в "проблемы" java с округлением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 14:32 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_hТеперь сам остановись, помедитируй .... И подумай, что нового ты предложил? тоже самое: писать свою функцию, где именно нужно: умножать->округлять до целого->делить Еще раз: Код: plaintext 1. 2. 3. и Код: plaintext Может теперь хватит? Проблема округления совершенно стандартна для вещественных чисел, которые нельзя представить в виде X*2^Y. Складывается ощущение, что вы о ней ни разу не слышали. Предлагаю закрыть топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:01 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Кувалдин РоманПроблема округления совершенно стандартна для вещественных чисел, которые нельзя представить в виде X*2^Y. Складывается ощущение, что вы о ней ни разу не слышали.А что, оно там как-то так хранится? А я думал, что там хранится длинное целое число плюс число позиций, на которую сдвинуть запятую... Кувалдин РоманПредлагаю закрыть топик.А мне интересно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:05 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
ежемуха > А я думал, что там хранится длинное целое число плюс число > позиций, на которую сдвинуть запятую... как вы число 2 сохраните в компьютере? если есть только цифры 0 и 1 ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:09 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs Легче не стало. ... в "проблемы" java с округлением. Дорогой коллега, и все участники данного обсуждения. Целью создания данного топика было выяснить для себя: andy_h ... каким махером выполнять округление Если бы цель была узнать как хранятся числа с плавующей точкой или каким образом происходит округление, то уж поверьте, название было бы другим. Хорошо ещё, что про работу CPU и FPU никто не вспомнил, хотя могли. А если, вместо вызова одной функции из какой-нить стандартной библиотеки, для округления мне надо что-то переводить в стринг и т.п., то ... чего-то разработчики не додумали или просто забыли ... Ладно, всем спасибо, если кого обидел - извините ... Тема исчерпана ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:14 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
ежемуха Кувалдин РоманПроблема округления совершенно стандартна для вещественных чисел, которые нельзя представить в виде X*2^Y. Складывается ощущение, что вы о ней ни разу не слышали.А что, оно там как-то так хранится? А я думал, что там хранится длинное целое число плюс число позиций, на которую сдвинуть запятую... Формат числа с плавающей запятой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:17 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
[OFF]Мельчает программист...[/OFF] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:19 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Deady ежемуха > А я думал, что там хранится длинное целое число плюс число > позиций, на которую сдвинуть запятую... как вы число 2 сохраните в компьютере? если есть только цифры 0 и 1Ну, как-то вот так: 10 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:23 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
а 0.2? здесь я имею ввиду что не каждое число с дробной частью можно записать 0ми и 1ами ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:25 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Deadyа 0.2? здесь я имею ввиду что не каждое число с дробной частью можно записать 0ми и 1ами Ну я как думаю (статью еще не прочел), мы храним отдельно число 2 и отдельно число -1 (тоже в двоичном виде) 2 * 10^ -1 то есть сдвинуть запятую на 1 вправо..... нет? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:30 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
тогда 2.2, сдвигать дальше некуда. как 22e2 представлять нельзя (не по правилам). ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:31 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
эээээ.... или надо чтобы там не 10 было а 2?... кажется щас допру... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:31 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
ежемуха Deady ежемуха > А я думал, что там хранится длинное целое число плюс число > позиций, на которую сдвинуть запятую... как вы число 2 сохраните в компьютере? если есть только цифры 0 и 1Ну, как-то вот так: 10 :) Народ, ещё раз повторюсь. Тема была "Как округлять?" , а не b]"Как хранится?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:32 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_h Народ, ещё раз повторюсь. Тема была "Как округлять?" , а не b]"Как хранится?" Так если щас выяснится что если компьютер не может успешно отличить 13.5465000000000000000000000000000001 от 13.5464999999999999999999999999999999 то тогда и выяснится, что никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:37 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
andy_hДорогой коллега, и все участники данного обсуждения. Целью создания данного топика было ... Вот скажи мне. Если ты знаешь, что было целью данного топика, то почему было сразу не написать об этой цели? Например, "хочу округлить до Ё-ной цифры после запятой, написав одну строчку кода ХХХ.yyy(my_double_value, Ё). Есть ли ХХХ.yyy в jdk1.5?" Всё. Ответ мог быть "да есть, вот: ****" и "нет такого". Вместо этого ты начинал нести пургу про паскаль с экселем. Когда тебе объяснили, почему эти двое курят в сторонке, ты стал всех куда-то посылать и о чём нераборчиво просить, вероятно, пытаясь показать, кто здесь ГрафМонтеКристо, а кто нет. Ну к чему оно было надо, а? Если ты так же пишешь программы, как общаешься на этом форуме, то мне просто жалко того человека, что платит тебе деньги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:38 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
Я все понял. (Объяснить не могу:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:45 |
|
||
|
Округление чисел с плавающей запятой!!!!
|
|||
|---|---|---|---|
|
#18+
javaScript != java ... Вот скажи мне. Если ты знаешь, что было целью данного топика, то почему было сразу не написать об этой цели? ... Это я и написал в самом-самом начале ... andy_h Подскажите, каким махером выполнять округление, чтобы число 13.5465 всё-таки "превращалось" в 13.547 Где здесь про Excel ??? Кусок кода в начале ещё добавил. Сказали бы: "Не, мужик!!! Это делается не так, а вот так!!!". Нет же ... сразу в библиотеку посылают, или в "любви" признаются. А по сути - ничего ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 15:52 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33586844&tid=2149990]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
189ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 544ms |

| 0 / 0 |
