Arbejde med flydende kommatal
Stryg for at vise menuen
Tallene slutter ikke med heltal. Der findes også kommatal. I C++ bruges 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 vigtigste at bemærke er, at repræsentationen af en float er opdelt i 3 dele:
-
fortegnsdelen er repræsenteret af enten et plus (
+) eller minus (-) symbol. Den angiver, om et tal er positivt eller negativt; -
eksponentdelen 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; -
mantissadelen 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å mantissaen. For datatypenfloater mantissalængden 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). Derfor er området sjældent 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