Deo zbornika Učimo Javascript
Nepreciznosti u računanju
Uzrok mnogih nepreciznosti u računanju je ograničen broj u memoriji za smeštaj decimala nekog broja, usled čega je nužna nepreciznost, odnosno zaokruživanje.
Nepreciznosti u računanju nisu specifičnost Javascripta, već su karakteristika gotovo svih programskih jezika, uključujući C, C++, Javu, Python i ostale.
Decimalni problem
Sabiranje decimalnih brojeva
Nekada i najprostije računske operacije sa decimalnim brojevima mogu dati neočekivane rezultate, na primer:
const rezultat = 0.2 + 0.1
console.log(rezultat)
Ovo nepreciznost se može rešiti zaokruživanjem:
const rezultat = 0.2 + 0.1
console.log(rezultat.toFixed(1))
Deljenje brojeva
Deljenje brojeva takođe može dati neočekivane rezultate, ukoliko je rezultat decimala:
const rezultat = 10 / 3
console.log(rezultat)
Oktalni problem
Ukoliko broj počinje nulom, JS ga ne interpretira u dekadnom već u oktalnom brojčanom sistemu. Na primer:
const a = 012
console.log(a) // ispisuje 10
Objašnjenje: 12 u oktalnom sistemu je isto što i 10 u dekadnom.