Форум программистов, компьютерный форум CyberForum.ru

Ошибки из-за погрешности в вещественных числах - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym запятую. http://www.cyberforum.ru/cpp-beginners/thread832495.html
Помогите решить задачку: Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym запятую.
C++ Проверка текста :wall:Не могу разобраться в чём дело :wall: Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; Даны натуральное число n, символы s1,s2,...,sn. Заменить в последовательности s1,s2,...,sn каждую группу букв "child" группой букв "children". При компилировании выдает:O_o error C3861: GetLine: идентификатор не найден error C2679: бинарный... http://www.cyberforum.ru/cpp-beginners/thread832457.html
C++ Генерация сочетаний из k элементов по n в лексикографическом порядке
Помогите пожалуйста понять в чем ошибка #include<iostream> using namespace std; #define n 6 #define k 4 int x ; int main()
Разработать программу Численное интегрирование методам Симпсона! C++
Heeelp!!!
C++ Разработать программу Численное интегрирование методам Чебышева! http://www.cyberforum.ru/cpp-beginners/thread832441.html
Heeelp!!!!
C++ Разработать программу Численное интегрирование методам Ньютона-Котеса! помогите в реализации программы подробнее

Показать сообщение отдельно
PazDim
5 / 5 / 0
Регистрация: 08.08.2011
Сообщений: 93

Ошибки из-за погрешности в вещественных числах - C++

09.04.2013, 13:31. Просмотров 298. Ответов 1
Метки (Все метки)

Здравствуйте. Пытаюсь написать 3Д движок. Вроде все было замечательно, но появилась проблема: я использую для обозначения координат точек вещественные числа, а у них в младших разрядах скапливается погрешность. Из-за этого не могу нормально отследить состояние, к примеру, вектора скорости: там, где скорость по оси Y должна быть равна нулю(объект на поверхности), на самом деле она равна что-то типа 0.000000000001. Или вот: есть диапазон на оси Х, и нужно проверить, входит ли точка в заданный диапазон(к примеру[-0.4;0.4]). А точка лежит на границе диапазона, и ее координата Х=0.40000008(то есть в диапазон не входит ). Как правильно избегать таких ситуаций? Из второй проблемы вышел растягиванием диапазона на заданную величину погрешности(к примеру, 0.0000001, тогда точка входит в интервал). Но вот как решить первую проблему? Заранее спасибо.
ЗЫ. Сначала использовал float. После обнаружения проблемы перешел на double. Понял, что толку нет, и вернулся к float. Все из-за того, что при написании когда считал значения переменных точными(то есть 0 это 0.0, а не 0.0000000001). В случаях, когда погрешности нет, все работает...
ЗЫЫ. Опыта работы с вещестенными числами не имею... Есть где краткое описание проблем с ними?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru