ugrás a tartalomhoz

kivonás

cica · 2014. Ápr. 29. (K), 15.27
Üdv!

Miért kapok ilyen eredményt?

var Mit; var Mit2; var mi;

Mit2=125.123;
Mit =236.456;	

mi = Mit2-Mit; 
document.writeln(mi);
  
Ennek az eredménye -111.33299999999998,
valójában :-111,333-nak kellene lenni.
 
1

Lebegőpontos számok

Poetro · 2014. Ápr. 29. (K), 15.34
Az alapja a lebegőpontos számok bináris reprezentációja. Erre keress rá, és megtudod a választ.
2

lebegőpontos számábrázolás

cica · 2014. Ápr. 29. (K), 18.47
Ez ok, csak arra voltam kíváncsi, hogy van e rá megoldás. Gondolom az egyik: megszorzom 1000-rel kivonom és utána elosztom 1000-rel. Ez nem mindig járható út. Amit írtam az egy egyszerű példa.
3

Hiba

Poetro · 2014. Ápr. 29. (K), 21.36
Ez nem a nyelv hibája, ugyanis minden nyelv, ami ezt a számábrázolást használja, szenved ettől a problémától. Ezért is nem lehet pontosan lebegőpontos számokkal számolni hagyományos rendszerekkel. Léteznek függvénytárak, keretrendszerek, amelyek tetszőleges pontossággal képesek egy számot ábrázolni, de azok általában nem beépített részei a legtöbb programozási nyelvnek és hatványozottan lassabbak, mint a beépített lebegőpontos számábrázolás. Ilyen például JavaScript esetén a math.js, de a 693kb-os méretével nem számít kicsinek.
4

Szamok

janoszen · 2014. Ápr. 30. (Sze), 13.25
Amikor pontos szamok kellenek, pl penzugyi tranzakciok, szokasos a szamot es a nagysagrendet kulon eltarolni. Peldaul ha forintrol beszelunk, 10000 Ft-bol ez lenne: 1000000, 100. Igy aztan nyugodtan tudsz rajta muveleteket vegezni, az eredmenyt meg a vegen a megjeleniteshez el tudod osztani 100-al.
5

értem

cica · 2014. Ápr. 30. (Sze), 19.01
Értem. Köszi mindkettőtöknek.