Przejdź do treści

Zaokrąglanie - round

Jak zaokrąglić liczbę? Czy można wykonać zaokrąglenie do podanego miejsca po przecinku?

Math.round

Math.round(x)
Parametry:
Number x - liczba rzeczywista
Wartość:
Number - zaokrąglona liczba całkowita

Zaokrągla wartość do liczby całkowitej - zgodnie z regułami matematycznymi. Jeżeli cyfra po przecinku jest większa lub równa 5, następuje zaokrąglenie w górę, a w przeciwnym razie w dół.

Przykład Math.round

Math.round(-Infinity); // -Infinity
Math.round(-1);        // -1
Math.round(-0.9);      // -1
Math.round(-0.5);      // -1
Math.round(-0.4);      // 0
Math.round(-0.1);      // 0
Math.round(0);         // 0
Math.round(0.1);       // 0
Math.round(0.4);       // 0
Math.round(0.5);       // 1
Math.round(0.9);       // 1
Math.round(1);         // 1
Math.round(Infinity);  // Infinity
 
Math.round(NaN);       // NaN
Math.round(undefined); // NaN

Zaokrąglenie liczby do podanego miejsca po przecinku

Co prawda nie da się wprost wykonać zaokrąglenia liczby do podanego miejsca po przecinku, ale można to zrobić w inny sposób. Trzeba jednak przy tym uważać na tzw. błąd zaokrągleń liczb zmiennoprzecinkowych. Na przykład aby zaokrąglić liczbę x do drugiego miejsca po przecinku, z czysto matematycznego punktu widzenia powinno wystarczyć wpisanie:

Math.round(x * 100) / 100

Niestety jak się możemy przekonać, w przypadku niektórych liczb wynik nie daje oczekiwanych rezultatów:

Math.round(1.005 * 100) / 100;  // 1
1.005 * 100;                    // 100.49999999999999
Math.round(100.49999999999999); // 100

Rozwiązaniem będzie zastosowanie notacji wykładniczej unikając tym samym błędu wynikającego z wykonywania operacji na liczbie zmiennoprzecinkowej:

Number(Math.round(1.005 + 'e+2') + 'e-2'); // 1.01

Komentarze

Zobacz więcej komentarzy

Facebook