Swift Academy · Oppitunti

Liukuluvut: Double ja Float

Valitse Double- ja Float-tyypin välillä ja käsittele tarkkuutta.

Oppitunti 2/413 vaihetta

Liukuluvut: Double ja Float on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Liukulukutyypit

Swiftissä on kaksi pääasiallista liukulukutyyppiä: Double (64-bittinen) ja Float (32-bittinen). Niillä esitetään lukuja, joissa on murtolukuosa.

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

Double on oletustyyppi

Kun kirjoitatte desimaaliliteraalin ilman tyyppimääritystä, Swift päättelee sen tyypiksi Double. Double tarjoaa paremman tarkkuuden kuin Float.

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

Tarkkuusero

Double tallentaa noin 15 merkitsevää desimaalinumeroa, kun taas Float tallentaa vain noin 6 tai 7. Sama literaali voi tulostua eri tavoin.

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

Pi-vakio

Molemmat tyypit tarjoavat ominaisuuden .pi. Double.pi on tarkempi kuin Float.pi.

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

Liukulukuaritmetiikka

Voitte laskea liukuluvuilla yhteen-, vähennys-, kerto- ja jakolaskuja. Jakolasku säilyttää murtolukuna esitettävän tuloksen.

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

Pyöristysmenetelmät

Liukulukuarvot tarjoavat menetelmän .rounded() sekä muunnelmia, kuten .rounded(.down) ja .rounded(.up).

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

Lattia, katto ja katkaisu

Pyöristyssäännöillä voitte pyöristää kohti negatiivista ääretöntä, kohti positiivista ääretöntä tai kohti nollaa.

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

Liukulukujen epätarkkuus

Binaariesityksen vuoksi joitakin desimaalilukuja ei voi tallentaa täsmällisesti. 0.1 + 0.2 ei tunnetusti ole täsmälleen 0.3.

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

Liukulukujen turvallinen vertailu

Tarkan yhtäsuuruuden sijaan verratkaa liukulukuja pienen toleranssin eli epsilonin puitteissa.

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

Liukulukujen erikoisarvot

Liukulukutyypit voivat esittää infinity- ja nan-arvoja (ei luku). Tarkistakaa ne komennoilla .isInfinite ja .isNaN.

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

Double- vai Float-tyypin valinta

Suosikaa yleisessä matematiikassa tarkkuuden vuoksi tyyppiä Double. Käyttäkää tyyppiä Float vain, kun muisti tai tietty laitteisto, kuten grafiikka, edellyttää 32-bittistä arvoa.

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

Pikatarkistus

Palauttakaa mieleenne, minkä tyypin Swift päättelee desimaaliliteraaleille.

Kertaus: Double ja Float

Opitte, että Double (64-bittinen ja oletusarvoinen) on tarkempi kuin Float (32-bittinen), että molemmat tarjoavat .pi-vakion ja pyöristysmenetelmiä ja että liukulukulaskenta on epätarkkaa, joten luvut kannattaa verrata toleranssin avulla eikä operaattorilla ==.

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)
Aloita maksutta

Opi Swift tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
122
Oppitunnit
409

Usein kysytyt kysymykset

Onko oppitunti ”Liukuluvut: Double ja Float” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Liukuluvut: Double ja Float”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Liukuluvut: Double ja Float”?

Valitse Double- ja Float-tyypin välillä ja käsittele tarkkuutta. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Liukuluvut: Double ja Float”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?

Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Kokonaislukutyypit ja niiden arvoalueet
  2. Liukuluvut: Double ja Float
  3. Eksplisiittiset lukumuunnokset
  4. Numeeriset literaalit ja alaviivat
← Takaisin: Swift Academy