Avatar billede xiol Nybegynder
18. februar 2005 - 00:33 Der er 6 kommentarer og
1 løsning

vil finde finde heltal

hvordan afgør jeg om en variabel af typen double indeholder et helt tal

på forhånd tak
Avatar billede kabbak Professor
18. februar 2005 - 00:51 #1
nu arbejder jeg ikke i C.

i vb ville de se ca sådan ud

Tal = 14.45

if tal -int(tal) > 0 then , så er der decimaler
Avatar billede bertelbrander Novice
18. februar 2005 - 01:09 #2
Hvis tallet ikke er større end at det kan være i en int:

double d = whatever();

if(d == int(d))
  DetErEtHeltal(d);
Avatar billede bertelbrander Novice
18. februar 2005 - 01:13 #3
Hvis tallet kan være meget stort:

if(d > 0)
{
  while(d > INT_MAX)
    d -= INT_MAX
  if(d == int(d))
    DetErEtHeltal(d);
}
else
  // samme her

INT_MAX findes i limits.h
Avatar billede arne_v Ekspert
18. februar 2005 - 07:51 #4
Der findes ikke nogen helt god måde at checke det på.

if(fabs(x - (int)x)) < 0.000001)
{
  // heltal
}
else
{
  // ikke heltal
}

hvor du selv justerer konstanten til  hvor lille forskellen skal være førend du
vil kalde det for et heltal.
Avatar billede nlf Nybegynder
19. februar 2005 - 15:18 #5
Forskellen ændrer sig jo også (til at være større) jo højere tallet bliver.
Det afgøres af IEEE 754 standarden ved floats, men kan ikke lige huske doubles standard (IEEE standarderne fortæller egentlig bare hvordan de forskellige bits bliver fortolket).
Du burde selv kunne regne forskellen ud ved de forskellige tal ved at tage et kig på doubles standard.
Avatar billede xiol Nybegynder
21. februar 2005 - 21:41 #6
jeg  siger tak for svaret jeg holder mig til arne_v så hvis du vil smide et svar så vil jeg smide nogle point til dig
Avatar billede arne_v Ekspert
21. februar 2005 - 21:42 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester