A lebegőpontos számábrázolás – avagy: amikor a fal adja a másikat

Az alapok

Az alapokat nem írom le. Rengeteg helyen elmagyarázzák. Jómagam pl. innen értettem meg – bevallom, nagyon nehezen ment, mert kicsit idegen a mindennapok világától a lebegőpontos számábrázolás szemlélete, s ha szükség van rá, bármikor belezavarodok magam is: https://gyires.inf.unideb.hu/GyBITT/31/ch05s05.html

A lényeg az, hogy a JavaScript a 64 bit hosszúságú, ún. dupla pontosságú lebegőpontos számábrázolást (double precision floating point format) használja, ahol a felosztás: 1 bit előjel – 11 bit kitevő – 53 bit mantissza. Viszont 1 + 11 + 53 = 65, ami 1-gyel több, mint 64. A mantissza ui. mindig egy 1-es rejtett bittel kezdődik, amit nem írunk ki. A kitevők ábrázolása viszont csak 1024-ig lehetséges (210) a feszített előjeles ábrázolás miatt.