isNaN w Delphi ???

0

Witam.
Mam nastepujace pytanie:
Czy w delphi jest odpowiednik funkcji isNaN ?? Na stronie delphibasics.co.uk znalazlem artykul mowiacy, ze takowa funkcja znajduje sie w module Math, ale mimo zalaczenia tego modulu dostaje komunikat isNaN - undeclared identifier. Prosze o pomoc w odnalezieniu lub ew. zasymulowaniu tej funkcji. Z gory dziekuje.
Pozdrawiam.

0

To dziwne. Nastepujacy kodzik testowy:

implementation
{$R *.dfm}
uses math;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not isnan(2.3) then Button1.Caption:='x';
if isnan(nan) then Label1.Caption:='f';
end;
u mnie kompiluje sie i dziala.

0

Cały unit (wystrczy wzucić do katalogu Lib):

unit MathEx;

interface

const
NANSignalingBits: Int64 = $7FF0000000000001;
NANQuietBits: Int64 = $7FFFFFFFFFFFFFFF;
PositiveInfinityBits: Int64 = $7FF0000000000000;
NegativeInfinityBits: Int64 = $FFF0000000000000;

var
NANSignaling: Double absolute NANSignalingBits;
dNANQuiet: Double absolute NANQuietBits;
dPositiveInfinity: Double absolute PositiveInfinityBits;
dNegativeInfinity: Double absolute NegativeInfinityBits;

const
NAN: Double = dNANQuiet;

function IsNAN(const d: Double): Boolean;
function IsInfinity(const d: Double): Boolean;

implementation

function IsNAN(const D: Double): Boolean;
var
Overlay: Int64 absolute D;
begin
Result:=((Overlay and $7FF0000000000000) = $7FF0000000000000) and
((Overlay and $000FFFFFFFFFFFFF) $0000000000000000)
end;

function IsInfinity(const D: Double): Boolean;
var
Overlay: Int64 absolute D;
begin
Result:=(Overlay and $7FF0000000000000) = $7FF0000000000000;
end;

end.

UWAGA: Tylko delphi 4 i wyżej (kod dla starszych wersji gdzieś miałem, ale się zgubił, możesz spróbować zmodyfikować ten (array [0..1] of single + trochę kombinowania), może się uda)

0

Math na 100% jest w D6 (a na 400% w D6 ent)

0

Wielkie dzieki za wszystkie odpowiedzi !!!
Moze moj problem wynika z tego, ze aktualnie uzywam D5 w wersji Standard. Moze w tej wersji nie ma tego chociaz z drugiej strony uzywam modulu math w tym samym kodzie (np. ArcCos) i o to sie kompilator nie awanturuje...
Tak czy siak jeszcze raz dziekuje.
Pozdrawiam, Kuba.

0

aktualnie uzywam D5 w wersji Standard. Moze w tej wersji nie ma tego chociaz z drugiej strony uzywam modulu math w tym samym kodzie

Pewnie jest Math ale jeszcze nie dolozyli obslugi Nan wtedy

1 użytkowników online, w tym zalogowanych: 0, gości: 1