Hirdetés
- Fotókon a Samsung Galaxy A57
- Okosóra és okoskiegészítő topik
- Android alkalmazások - szoftver kibeszélő topik
- Telekom mobilszolgáltatások
- Google Pixel topik
- Yettel topik
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Android Autót minden mobilra!
- Motorola Edge 60 Fusion - nem csak a forma időtálló
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
-
Mobilarena

Új hozzászólás Aktív témák
-
válasz
HussarF
#13235
üzenetére
"de miért csinálja azt, hogy float esetén kiegészíti a számot még random, kisebb helyi értékű számjegyekkel, hogy meglegyen a 10 számjegy?"
Ez egy nagyon fontos kérdés a lebegőpontos számoknál!
Mivel a lebegőpontos számok is binárisak, ezért egy csomó szám, ami tizes számrendszerben véges számú számjeggyel leírható, az (kettesre váltva) végtelen tizedes tört lesz. Például a tök egyszerűnek tűnő "0.1" 32 bites floatkén már "0.100000001490116119384765625" (itt van egy online tool, amivel nézhetsz még példákat). Természetesen double esetén is létezik ugyanez a probléma, csak a tíz tizedesre kerekítés ott már elrejtette ezt (mert a hiba kisebb volt a kerekítés értékénél), de egy precision(30) már biztos előhozná.
Ezért (meg a lebegőpontos számítások eredő pontatlansága miatt*) van az, hogy lebegőpontos számoknál gyakorlatilag tilos ==-t használni, szimpla egyenlőségvizsgálat helyett azt kell megnézni, hogy elég közel vannak-e egymáshoz (ahol az "elég közel" az sajnos mindig kontextusfüggő, tudni kell, hogy milyen mértékű hibára kell ott számítanod).
*: a pontatlanságra példa
if ( (b > 0) && (a+b == a) ) printf("oops\n");Ez simán kiírhatja azt, hogy oops (annak ellenére, hogy tisztán matematika alapon nem lenne neki szabad), pl:
a=10000000.0;
b=00000000.1;
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Fotókon a Samsung Galaxy A57
- Elképzelhetetlen sebességre kapcsol Jeff Bezos űrinternete
- TCL LCD és LED TV-k
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Lakáshitel, lakásvásárlás
- EAFC 26
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- OLED TV topic
- Peugeot, Citroën topik
- Adatvédelem kontra kényelem: ha kérik, a Microsoft kiadja a kulcsokat
- További aktív témák...
- GYÖNYÖRŰ iPhone 12 Mini 128GB Purple-1 ÉV GARANCIA - Kártyafüggetlen, MS3630
- Xiaomi Redmi 14C / 4/128GB / Kártyafüggetlen / 12Hó Garancia
- Macbook Pro M3 Max 16" - 64 GB/4TB/ AJÁNDÉK MAGIC KEYBOARD 3/ 27% ÁFÁS!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 13 Pro 128GB Sierra Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS3965
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs



