Форум: "Начинающим";
Текущий архив: 2018.02.04;
Скачать: [xml.tar.bz2];
ВнизОкругление Найти похожие ветки
← →
Dmk © (2016-02-12 00:57) [0]Есть такое значение 504,00001502037. При сравнении с числом 504 они не равны, но по логике должны быть раны. Как бороться с мусором в конце? Поделитесь опытом.
← →
Dmk © (2016-02-12 01:02) [1]>раны = равны
Все числа Extended.
Или вот еще пример: (100/300) без округления равно 0.333333333333485, а после RoundTo(100/300, -2) получается 0,330000013113022. Откуда то "мусор" в конце. Как его убрать?
← →
KilkennyCat © (2016-02-12 02:35) [2]уменьшить разрядность до 2 после запятой. или округлять до 15
← →
sniknik © (2016-02-12 07:29) [3]http://delphikingdom.com/asp/viewitem.asp?catalogid=374
Пример второй – сравнение
← →
Dimka Maslov © (2016-02-12 08:26) [4]Раньше были такие хорошие книжки, которые описывали принципы работы с вещественными числами и объясняли про мусор, возникающий из-за недостаточной точности вычислений и округления. А как с этим бороться нам ещё 20 лет назад в паровозной школе рассказывали. Преподаватели не знали, как правильно пишутся Turbo Paskal и Norton Comandor, но прекрасно вызубрили, что операция сравнения вещественных чисел должна записываться как abs(a-b)<eps, где eps - наперёд заданная точность.
← →
Rouse_ © (2016-02-12 11:59) [5]
> Откуда то "мусор" в конце. Как его убрать?
http://rouse.drkb.ru/other.php#round
← →
Dmk © (2016-02-12 16:23) [6]>sniknik © (12.02.16 07:29) [3]
В том и прикол, что "мусор" появляется после округления!!! Причем не всегда!
От чего это зависит?
← →
Германн © (2016-02-12 16:31) [7]
> Dmk © (12.02.16 16:23) [6]
Так ты статью по ссылке прочитал? Там все написано.
← →
sniknik © (2016-02-12 17:10) [8]> От чего это зависит?
от сопроцессора, и способа хранения таких чисел.
← →
Dimka Maslov © (2016-02-12 17:39) [9]Даже RoundTo не избавляет от мусора. Просто после RoundTo можно брать гораздо меньшее eps при сравнении.
← →
Юрий Зотов © (2016-02-12 19:22) [10]> Dmk © (12.02.16 16:23) [6]
> В том и прикол, что "мусор" появляется после округления!
Число 0.33 в двоичном коде не может быть представлено точно. Поэтому как ни округляй, а погрешность все равно будет.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.02.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c