Swift Academy · leksjon

Flyttall: Double kontra Float

Velg mellom Double og Float, og håndter presisjon.

Leksjon 2 av 413 trinn

Flyttall: Double kontra Float er en gratis leksjon i Swift Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Swift Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Swift Academy inneholder totalt 4 leksjoner.

Flyttallstyper

Swift har to hovedtyper for flyttall: Double (64-bit) og Float (32-bit). De representerer tall med desimaldeler.

let d: Double = 3.14159
let f: Float = 3.14159
print(d, f)

Double er standardtypen

Når De skriver en desimalliteral uten typeannotasjon, utleder Swift Double. Double gir høyere presisjon enn Float.

let value = 2.5
print(type(of: value))

Forskjell i presisjon

Double lagrer omtrent 15 signifikante desimalsifre, mens Float bare lagrer omtrent 6 eller 7. Den samme literalen kan skrives ut forskjellig.

let d: Double = 0.1234567890123456
let f: Float = 0.1234567890123456
print(d)
print(f)

pi-konstanten

Begge typene tilbyr .pi. Double.pi er mer presis enn Float.pi.

print(Double.pi)
print(Float.pi)

Flyttallsaritmetikk

De kan addere, subtrahere, multiplisere og dividere flyttall. Divisjon beholder brøkresultatet.

let radius = 2.0
let area = Double.pi * radius * radius
print("Area:", area)

Avrundingsmetoder

Flyttallsverdier tilbyr .rounded() samt varianter som .rounded(.down) og .rounded(.up).

let x = 2.7
print(x.rounded())
print(x.rounded(.down))
print(x.rounded(.up))

Gulvfunksjon, takfunksjon og avkorting

Avrundingsreglene lar Dem runde ned mot negativ uendelighet, opp mot positiv uendelighet eller avkorte mot null.

let n = -2.3
print(n.rounded(.down))
print(n.rounded(.up))
print(n.rounded(.towardZero))

Upresisjon i flyttall

På grunn av binær representasjon kan enkelte desimaltall ikke lagres nøyaktig. 0.1 + 0.2 er kjent for ikke å bli nøyaktig 0.3.

let sum = 0.1 + 0.2
print(sum)
print(sum == 0.3)

Sikker sammenligning av flyttall

I stedet for å bruke eksakt likhet bør flyttall sammenlignes innenfor en liten toleranse (epsilon).

let sum = 0.1 + 0.2
let close = abs(sum - 0.3) < 0.0001
print("Close enough:", close)

Spesielle flyttallsverdier

Flyttallstyper kan representere infinity og nan (ikke et tall). Kontroller med .isInfinite og .isNaN.

let inf = Double.infinity
let notNum = Double.nan
print(inf.isInfinite)
print(notNum.isNaN)

Velge Double eller Float

Foretrekk Double for nøyaktighet i generell matematikk. Bruk Float bare når minnebegrensninger eller bestemt maskinvare, for eksempel grafikk, krever en verdi på 32 bit.

let preciseAvg: Double = (10.0 + 3.0) / 4.0
print(preciseAvg)

Hurtigsjekk

Husk hvilken type Swift utleder for desimale litteraler.

Oppsummering: Double kontra Float

De har lært at Double (64 bit og standardtypen) er mer presis enn Float (32 bit), at begge tilbyr .pi og avrundingsmetoder, og at flyttallsaritmetikk er unøyaktig. Derfor bør De sammenligne med en toleranse i stedet for ==.

let a = 0.1 + 0.2
print("Raw:", a)
print("Rounded:", a.rounded())
print("Within tolerance of 0.3:", abs(a - 0.3) < 1e-9)
Gratis å komme i gang

Lær deg Swift med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
122
Leksjoner
409

Ofte stilte spørsmål

Er leksjonen «Flyttall: Double kontra Float» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Swift Academy, inkludert «Flyttall: Double kontra Float», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Swift Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Flyttall: Double kontra Float»?

Velg mellom Double og Float, og håndter presisjon. Du øver på Swift Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Swift Academy?

Ingen tidligere erfaring er nødvendig. Swift Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Flyttall: Double kontra Float»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Swift Academy-leksjonen?

Ja. Alle Swift Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Heltallstyper og områdene deres
  2. Flyttall: Double kontra Float
  3. Eksplisitte numeriske konverteringer
  4. Numeriske literaler og understrekingstegn
← Tilbake til Swift Academy