Temat: Mnożenie na liczbach zmiennoprzecinkowych

Witam,
Mam dosyć dziwny problem odnośnie mnożenia na liczbach zmiennoprzecinkowych. Przy mnożeniu np 0.000001 *100000 otrzymuję wynik 0,0999999 zamiast 0,1. Kwiatki wychodzą też przy innych obliczeniach. Dodaje mi różne wartości na końcu.
Czytałem, że js przechowuje liczby zmiennoprzecinkowe jako liczby 64 bitowe zgodne ze standardem IEEE 754 oraz znalazłem skrypt mający wyeliminować błąd

function round(number,x) {
var x = (!x ? 2 : x);
return Math.round(number*Math.pow(10,x)) / Math.pow(10,x);
}

Lecz wynik jest obliczany przez program i nie jestem w stanie określić do której potęgi ma podnieść wartość. Czasami wyświetla mi wartość 6.2137119224e-7 więc liczenie po ilości cyfr zbytnio nie wchodzi w grę.

konto usunięte

Temat: Mnożenie na liczbach zmiennoprzecinkowych

To nie jest dziwny problem tylko pewne ograniczenie JS.

Jezeli Twoj use case nie potrzebuje az takiej dokladnosci, moze po prostu uzyj http://www.ecma-international.org/ecma-262/5.1/#sec-15...



Wyślij zaproszenie do