Arbete med Flyttal
Svep för att visa menyn
Talen slutar inte med heltal. Det finns också flyttal. I C++ används datatyperna float och double för att lagra dessa. Detta kapitel behandlar datatypen float, medan nästa kapitel tar upp datatypen double och dess skillnader. Nedan visas syntaxen för användning av float:
float.h
1float num = 0.45;
Vi ska snabbt titta på hur flyttal lagras i minnet.
Datatypen float upptar 4 byte minne, precis som en int. Däremot är det betydligt mer komplicerat att konvertera sådana tal till binärkod:
Här är ett exempel på hur float num = 13.45 skulle lagras:
Det är okej om du inte helt förstår vad som händer här. Det viktiga att notera är att representationen av en float är uppdelad i 3 delar:
-
Tecken-komponenten representeras av antingen ett plus (
+) eller minus (-) tecken. Den anger om ett tal är positivt eller negativt; -
Exponent-komponenten bestämmer intervallet som ett tal kan representera. Ju större exponent, desto bredare värdeintervall kan representeras. För datatypen
floatupptar exponenten 1 byte (8 bitar) av minnet; -
Mantissa-komponenten bestämmer precisionen för en
float. Alla tal kan inte exakt representeras i minnet, och precisionen för ett tal definieras av mantissans längd. För datatypenfloatär mantissans längd 23 bitar.
Som ett resultat har float en precision på 7 decimaler och ett intervall från 1.2e-38 till 3.4e+38 (gäller både negativa och positiva tal). Så oftast är intervallet inget problem. Men precisionen kan ibland vara det.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal