A floating point problémát mi okozza, hogy idézhető elő és mit lehet tenni ellene?
#19 Amit te felvázoltál tizedesvessző előtti és utáni részről, az pontosan az amit én is megemlítettem a mondandóm végén, a szám maga két számra van szétszedve, egészre és törtre, és a számok maguk a decimális értékük átírása. A probléma, hogy ez nem hatékony, és nehéz vele számolni. Persze, a 0,3+0,3 egyszerű ebben az esetben, a probléma ott jön elő, amikor a tizedes vesszőn átfolyik az eredmény.
A te logikádat követve:
1,8+2,4 =
00000001,00001000 + 00000010,00000100 =
00000011,00001011 = 3,11. Mi? Ez nem stimmel. Persze, hogy nem stimmel, hiszen ha egyszerűen két számra szétszedjük a dolgot, akkor a jóisten se mondja meg, hogy hol lesz az átmenet az egész és a tört rész között. Az átmenet csak akkor lesz egyértelmű, ha egységesítjük a számsort, ezesetben viszont mivel az egész rész a 2 nemnegatív hatványaiból áll, így a törtrész a 2 negatív hatványaiból fog állni. És mint már megmutattuk, a 2 hatványaiból nem lehet pontosan ábrázolni minden törtet (ámbár tetszőlegesen közelíthető az értékük)
"Legyen szó bármilyen számról azt lehet konvertálni pontosan binárisba és vissza is decibe."
Nem lehet, pont ez a lényeg.
# 16/22 Időpont ma 14:47
Amiről te beszélsz, az létezik, és fix pontos ábrázolásnak hívják: [link]
Csak rettenetesen memóriaigényes, ezért használják a lebegőpontos ábrázolást.
# 19/22 Időpont ma 15:41
Az 1/2, 1/4, 1/8, 1/16, stb. számok összeadásával próbálj összetenni 1/10-et. Nem fog menni.
Ezért hoztam tízes számrendszerbeli példát. Csak és kizárólag az 1/10, 1/100, 1/1000, és stb. számaid vannak. Ezek összeadásával hozz ki 1/3-ot. Ez se fog menni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!