Adrian Kosiński Webmaster
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ę.