Arbejde med flydende kommatal
Stryg for at vise menuen
Tallene stopper ikke ved heltal. Der findes også kommatal. I C++ bruger vi datatyperne float og double til at gemme dem. Dette kapitel omhandler datatypen float, mens det næste kapitel vil tage fat på datatypen double og dens forskelle. Nedenfor ses syntaksen for brugen af float:
float.h
1float num = 0.45;
Et hurtigt kig på, hvordan kommatal lagres i hukommelsen.
Datatypen float optager 4 bytes hukommelse, ligesom en int. Dog er det langt mere kompliceret at konvertere sådanne tal til binær kode:
Her er et eksempel på, hvordan float num = 13.45 ville blive lagret:
Det er i orden, hvis du ikke helt forstår, hvad der sker her. Det vigtige at bemærke er, at repræsentationen af en float er opdelt i 3 dele:
-
fortegn-komponenten er repræsenteret ved enten et plus (
+) eller minus (-) symbol. Den angiver, om et tal er positivt eller negativt; -
eksponent-komponenten bestemmer det interval, et tal kan repræsentere. Jo større eksponenten er, desto bredere et interval af værdier kan repræsenteres. For datatypen
floatoptager eksponenten 1 byte (8 bits) af hukommelsen; -
mantisse-komponenten bestemmer præcisionen af en
float. Ikke alle tal kan repræsenteres nøjagtigt i hukommelsen, og præcisionen af et tal defineres af længden på mantissen. For datatypenfloater mantissens længde 23 bits.
Som resultat har float en præcision på 7 decimaler og et område fra 1.2e-38 til 3.4e+38 (gælder for både negative og positive tal). Så for det meste er området ikke et problem. Men præcisionen kan nogle gange være det.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat