Страница: 1 | 2 |
Вопрос: Про математику... 0,5 - 0,4 не равно 0,1 ???
Добавлено: 11.06.11 21:50
Автор вопроса: DimBi
Ответы
Всего ответов: 18
Номер ответа: 16
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #16
Добавлено: 14.06.11 18:41
Дробные числа не желательно сравнивать через ==, опасно! В вб ещё может прокатить (бывает, пи делишь на 10000, складываешь, и получаешь снова пи, но лучше не надеяться)
Номер ответа: 17
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #17
Добавлено: 16.06.11 09:20
Числа с плавающей точкой не гарантируют точность... Сравнивать их нужно соответствующим образом. Не aaa == bbb, а Math.Abs(aaa - bbb) < eps, где eps - некоторое малое число, например 0.0001, варьировать можно исходя из поставленной задачи.
Номер ответа: 18
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #18
Добавлено: 16.06.11 19:07
Павел, ога, недавно так пришлось сделать - в C++ double был равен -0.00000000 и так и отображался (расчитвылся из выражения типа 0.0 - 0.0) так этот **** C++ не понимал, что это число < 0 то есть if() statement в методе angleTo360 не срабатывало и угол оставался отрицательным. Решили как ты сказал, через модуль (fabs); хорошо хоть он не через if-then-else написан оказался