funkcja IsNan do Edit1->Text w Builderze

0

gdyby ktos mogl mi podpowiedziec jak uzyc fukncji IsNan w warunku if

if (IsNan(Edit1->Text)) {}
else {}

I w tym przypadku sie "rzuca" ze:
E2268 Call to indefined function 'IsNan'

a wrzucilem headera Math.h na samej gorze #includem <Math.h>

na razie sie z tym mecze... ale jezeli ktos wie co zrobic to bardzo prosze o pomoc

0

IsNan wymaga double jako argumentu, jako, że NotANumber jest wartością tychże. Użyj jakiejś prostej konwersji w stylu

atof();
0

nie rozumiem...

Dlaczego TEKST mam wrzucac do zmiennej float??
Ja chcialbym sprawdzic czy to co wpisalem to Edita jest liczba czy tekstem... - bo jezeli wystepowalaby tam jakas iterka, wtedy chcialbym zrobic message z info zeby poprawic blad.

0
romi napisał(a)

nie rozumiem...

Dlaczego TEKST mam wrzucac do zmiennej float??
Ja chcialbym sprawdzic czy to co wpisalem to Edita jest liczba czy tekstem... - bo jezeli wystepowalaby tam jakas iterka, wtedy chcialbym zrobic message z info zeby poprawic blad.

Dlatego, że funkcja IsNan jako parametr przyjmuje DOUBLE - prościej się już nie da [sciana]

Co nie zmienia faktu, że Twoje podejście jest złe. Aby sprawdzić czy jest tam liczba czy nie trzeba ten text przekonwertować do (w zależności, czy ma sprawdzać, czy jest to całkowita czy rzeczywista) int lub double odpowiednio instrukcją atoi lub atof i sprawdzić wynik w taki sposób

if ((atof(Edit1->Text) <> 0.0) && (Edit1->Text <> "0.0"))
{
  //jest liczba
}
else
{
  //jest text
}
0
Misiekd napisał(a)

if ((atof(Edit1->Text) <> 0.0) && (Edit1->Text <> "0.0"))
{
//jest liczba
}
else
{
//jest text
}

A nie prościej (i pewniej):

double value;

try 
{
 value=Edit1->Text.ToDouble();
}
catch(...)
{
 // lipa, zły format liczby
}

0
0x666 napisał(a)

A nie prościej (i pewniej):

prościej na pewno, ale czy pewniej (znaczy się chodzi mi o to, że tak samo pewnie) :> :)

0

A co się stanie jak w Edit1->Text będzie 0 lub 0.00, a nie 0.0??? ;)

0

szczegóły ;P

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