- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- Elektromos rásegítésű kerékpárok
- eBay-es kütyük kis pénzért
Hirdetés
-
LOGOUT
Ú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
Hirdetés
● olvasd el a téma összefoglalót!
- Szép HP EliteBook 840 G9 Fémházas Hordozható Érintős Ultrabook 14" -40% i5-1235U 32/1TB Iris Xe FHD+
- Logitech G935
- Creative Sound Blaster Live! 5.1-es digitális PCI hangkártya
- Rock Shox Recon Silver Air gyorszáras villa eladó (29-es)!
- ÚJ Nvidia RTX 5060/TI 8-16Gb GDDR7 DLSS4.0 Ryzen 7 5800X 16x4.7Ghz/32GB/512Gb/1TB M SSD/2ÉV gamer PC
- Logitech G513 Carbon Tactile DE (3)
- HP EliteBook 830 G8 i5-1135G7 16GB 512GB 1 év garancia
- Dell USB-C dokkolók: (K20A) WD19/ WD19S/ WD19DC + 130W, 180W, 240W töltők
- Bomba Ár! Dell Latitude 3190 - Intel N4120 I 4GB I 64GB SSD I 11,6" HD I Cam I W11 I Garancia!
- AKCIÓ! Apple MacBook Pro 13 2022 M2 8GB 256GB SSD garanciával hibátlan működéssel
Állásajánlatok
Cég: FOTC
Város: Budapest