( poliverzum | 2013. 01. 20., v – 03:11 )

Gőzöm nincs ezt miért írod. A kérdéses bugról szóló hír lényegi része így hangzik:

"A bug következtében a 850*77,1 szorzás eredménye kerek 100 000 a helyes 65 535 helyett. Úgy tűnik, hogy nem csak ennek a szorzatnak fals az erdeménye."

Na most amiről te beszélsz az ha jól értem az, hogy meg akarod nekem magyarázni, miért van hogy egyes véges tizedestörtek végtelen tizedestörtként jelennek meg. Legalábbis remélem jól kapisgálom amit írni akartál, mert se azt nem tudom mi az a FYI, se azt mi az az IEEE754. Tudom, utánanézhetnék mert gúgli a barátom, de annyira nem érdekel. Mindenesetre abban eléggé biztos vagyok, hogy ennek arra vezethető vissza az oka, hogy tizes számrendszer beli számokat kettes számrendszerben ábrázolnak, plusz még gondolom bekever az is, hogy valami lebegőpontos bizbasszal bonyolítják az ügyet. Igazad van, ilyesmi volt a C-64 esetében is, jól emlékszem rá.

Na de most azt mondd meg nekem lécci, ennek mi köze ahhoz, hogy akkora szarvashibát vét egy számoló-szoftver, hogy a kijött eredmény majdnem negyvenezerrel kevesebb mint aminek lennie kell?! Mert a bug erről szól. Az hogy közben felvetődött hogy mennyire nem esztétikus a sok kilences dolog, az teljesen mellékes, bár megjegyzem illene azért a huszonegyedik század elején ezt is megoldani, mondjuk úgy hogy írnak olyan aritmetikai rutinokat, melyek igenis nem kettes hanem tizes számrendszerben szoroznak/osztanak stb, s a számokat is ilyen számrendszerben tárolják. Úgy tudom különben létezik is valami ilyesmi, rémlik mintha a C vagy C++ -nak volna efféle számábrázolási formátuma és ehhez való függvényei, csak most nem ugrik be ennek a neve. De tényleg nem érdekes, mert egy jól megírt alkalmazásban ez nem okozhat, nem szabadna hogy okozzon ekkora eltérést. Tudod ha nekem fizetést számolnak és mittomén a tizenhatodik tizedesjegyben a számábrázolás miatt eltérés van, s emiatt tegyük fel 1 tízezred fillérrel kevesebb fizut utalnak, azt le$a...m. Ha 40 ezer Ft-tal kapok kevesebb zsét, én úgy éljek reklamálok de azonnal! Az már nagyon nem mindegy. De ha ez a bug mondjuk akkor jön elő amikor egy híd támpilléreit tervezik, ugye teherbírás szempontjából, akkor még cifrább dolgok is megeshetnek. Mert hát ha leszakad a híd, az elég jelentős anyagi kár, még ha épp nincsenek is rajta emberek. Holott lehetnek... Ilyesminek egyszerűen nem szabad bekövetkeznie egy jól megírt szoftverben, akármilyen is a számábrázolási mód. Ha nem lehet megoldani a gondot az adott számábrázolással, akkor használjanak más számábrázolást. De ez semmiképp sem megengedhető. Ekkora eltérés nem.

-------------
Blogom: http://violazoli.blogspot.com
Könyvem a VIM-ről: http://mek.oszk.hu/09600/09648/#