- Mobil flották
- Magyarországra érkezett a Mijia, a Xiaomi okos háztartási nagygépeinek márkája
- Bemutatkoztak a Samsung legújabb fülhallgatói is
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Milyen okostelefont vegyek?
- Motorola Signature - mielőtt aláírnád...
- Honor Magic5 Pro - kamerák bűvöletében
- Videón mutatják meg a Nothing tervezői a Phone (4a) külső újdonságait
- Honor 200 Pro - mobilportré
- iPhone topik
-
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!
- A fociról könnyedén, egy baráti társaságban
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Gyúrósok ide!
- Óra topik
- Mobil flották
- Milyen videókártyát?
- Vezeték nélküli fülhallgatók
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Milyen nyomtatót vegyek?
- Robotporszívók
- További aktív témák...
- Ryzen 7 7800X3D +hűtött VRM-es B650M lap +32GB DDR5 RAM! GAR/SZÁMLA (a Te nevedre kiállítva)!
- ThinkPad T14 Gen2i 27% 14" FHD IPS i7-1185G7 16GB 512GB NVMe ujjlolv IR kam gar
- ÚJ Lenovo LOQ 15AHP10 - 15.6"FHD 144Hz - Ryzen 7 250 - 16GB 1TB - Win11 - RTX 5060 - 3 év gari
- Precision 5770 27% 17" 4K+ IPS érintő i7-12700H RTX A3000 32GB 1TB NVMe ujjlolv IR kam gar
- Macbook Pro 13" A2338 2022 M2 16GB 256GB 2
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


