Текущий архив: 2007.01.14;
Скачать: CL | DM;
Вниз
Как определить, что переменная равна значениям NAN или -NAN ? Найти похожие ветки
← →
Single3 (2006-12-25 06:10) [0]NAN - это вообще сколько?
Я просто хочу сделать корректор, который бы проверял, и если у переменной такие значения, чтобы он их возвращал в рамки. А как это сделать?
← →
Джо © (2006-12-25 06:11) [1]
uses Math;
IsNAN
← →
Джо © (2006-12-25 06:12) [2]
> NAN - это вообще сколько?
NAT — это "not a number", т.е. "не число".
← →
Single3 (2006-12-25 07:12) [3]Разве single - это может быть не число?
И не число - это сколько?
← →
ors_archangel © (2006-12-25 07:17) [4]
> И не число - это сколько?
0 / 0 = NAN, sqrt(-1) = NAN, NAN - это не число, не сколько, неопределённость либо не существует
← →
Джидай (2006-12-25 07:23) [5]Дырка в микросхеме памяти это. Понятно?
← →
ЮЮ © (2006-12-25 07:24) [6]
> И не число - это сколько?
Если бы можно было сказать сколько, это было бы число :)
Разве single - это может быть не число?
Очевидно, когда exponent-а "зашкалила"function IsNan(const AValue: Single): Boolean;
begin
Result := ((PLongWord(@AValue)^ and $7F800000) = $7F800000) and
((PLongWord(@AValue)^ and $007FFFFF) <> $00000000);
end;
Даже Extended может быть, чего уж там Singlefunction IsNan(const AValue: Extended): Boolean;
type
TExtented = packed record
Mantissa: Int64;
Exponent: Word;
end;
PExtended = ^TExtented;
begin
Result := ((PExtended(@AValue)^.Exponent and $7FFF) = $7FFF) and
((PExtended(@AValue)^.Mantissa and $7FFFFFFFFFFFFFFF) <> 0);
end;
← →
Single3 (2006-12-26 02:07) [7]А -NAN ?
Такое тоже бывает.
← →
Desdechado © (2006-12-26 10:44) [8]минус бесконечность
← →
Anatoly Podgoretsky © (2006-12-26 12:29) [9]> Single3 (26.12.2006 2:07:07) [7]
Такого не бывает, знак относится только к числам.
← →
Джо © (2006-12-26 16:44) [10]> [8] Desdechado © (26.12.06 10:44)
> минус бесконечность
За это отвечая другая константа и другая функция: NegInfinity, IsInfinity.
Страницы: 1 вся ветка
Текущий архив: 2007.01.14;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.012 c