переменная с ошибкой

Страницы: 1
RSS
переменная с ошибкой
 
пожалуйста подскажите, как идентифицировать переменную с ошибкой:  -1.#IND
a = 0;
a = b + c - в результате (понятно по какой причине) получаем  -1.#IND
пробую так:
1) if a == "-1.#IND" - не получается; 2)  if a == -1.#IND - не получается; 3)  if a == nil - не получается;
 
неправильно написал:
a = b/c - в результате (понятно по какой причине) получаем -1.#IND  
 
Как-то так?
Код
if c ~= 0 then
  a = b / c
  print(a)
else print("Что я делаю?! Нельзя на ноль делить!") end
Надо делать так, как надо. А как не надо - делать не надо.
 
Да понятно, но думал можно и а идентифицировать как-то
 
Вариант 1:
Код
if tostring(math.abs(a)) == "1.#INF" then print("Неожиданный результат") end


Вариант 2:
Код
infinity = 1/0 
if a == infinity or a == -infinity then print("Неожиданный результат") end


Кстати, 1.#IND - значение типа number.
Надо делать так, как надо. А как не надо - делать не надо.
 
несовсем понятна конечная цель и её реализация. Но, возможно стоит прочесть, что-нибудь вроде этого? :
http://www.lua.org/wshop06/Belmonte.pdf

ну и, "что за зверь" - этот "-1.#IND" --> http://habrahabr.ru/post/171203/
 
Спасибо большое!
 
?
 
а в чем вопрос: infinity = 1/0 if a == infinity or a == -infinity then print("Неожиданный результат") end - работает. Все получилось, Не совсем понял почему у меня 1.#IND с минусом получается, но из статьи http://habrahabr.ru/post/171203/ видно, что не все однозначно. Будем проверять и с + и с -.
 
там в презентации на нерусском языке (вторая ссылка) - есть и другие более интересные методы "отлова" ошибок.
 
http://lua-users.org/wiki/MathLibraryTutorial

Код
math.huge is a constant. It represents +infinity. 
> = math.huge
inf
> = math.huge / 2
inf
> = -math.huge
-inf
> = math.huge/math.huge   -- indeterminate
nan
> = math.huge * 0         -- indeterminate
nan
> = 1/0
inf
> = (math.huge == math.huge)
true
> = (1/0 == math.huge)
true
Note that some operations on math.huge return a special "not-a-number" value that displays as nan. This is a bit of a misnomer. nan is a number type, though it's different from other numbers:> = type(math.huge * 0)
number 
Страницы: 1
Читают тему
Наверх