Možné duplicitné:
Elegantné riešenie problému s pohyblivým bodom jazyka JavaScript
var sum = 0;
$("[id$=percentOfTotalEditor]").each(
function () {
var igEditor = $find(this.id);
var value = igEditor.get_value();
sum += value;
}
);
Potom uvidíte čaro:
suma == 1,1, hodnota == 0,1. Ale po súčte + = hodnota, suma == 1.2000000000000001
WTF!?
odpovede:
0 pre odpoveď č. 1Čísla v javascripte sú uložené ako plávajúce body - dôjde k určitému stupňu nepresnosti - pozrite si prepojený článok alebo vyhľadajte na tejto stránke aritmetiku s pohyblivou rádovou čiarkou pre mnohé vysvetlenia.
0 pre odpoveď č. 2
Áno, táto otázka je duplikátom, ako navrhla Paddy. Napriek tomu tu je ďalšia knižnica Javascript, ktorá vám umožní pracovať s presnými desatinnými číslami (až do jedného bodu): http://blog.brewsession.com/2008/06/28/problematic-decimal-arithmetic-in-javascript/