В конкретных:
Я выполняю некоторые математические операции, и приложение продолжает давать сбой, потому что часто используемый двойник получает значение: -1.#IND000000000000, когда "некоторые" числа обрабатываются sqrt... Что это? Бессрочный? Бесконечный? Слишком большой, чтобы соответствовать? Не идеальный квадратный корень? Есть ли способ решить эту проблему? Заранее спасибо! РЕДАКТИРОВАТЬ: Как я могу проверить, имеет ли двойное значение это значение? Я пробовал: if (x == 0x-1.#IND000000000000) и другие варианты, но не сработало. Можно ли проверить, имеет ли переменная это значение?
some numbers
меньше 0? Скажите, сэр, какова площадь -1? - person EnabrenTane   schedule 14.01.2011sqrt(-1)
, аsqrt(-1E-20)
или около того. Это происходит, когда два приблизительно равных члена почти сокращаются, например.sqrt(100.0/3.0 - (50.0/3.0 + 50.0/3.0))
. Из-за ограниченной точности FP этот аргумент не совсем равен0.0
и может быть округлен до отрицательного числа. - person MSalters   schedule 14.01.2011