Poraz pierwszy spotykam sie z tego typu problemem wiec prosze o pomoc.
Napisalem prosty skrypt pobierajacy ajaxem z bazy produkty.
Calosc generuje sie w formie tabelki z polami typu input (produkt, cena, ilosc, do_zaplaty).
Globalnie dopiasalem cos takiego, ze po nacisnieciu entera przegladarka nie wysyla formularza tylko przelicza ilosci kwoty i podaje calkowity koszt zakupu.
Logika liczenia oparta jest o Javascript/jQuery
$('.prId').each(function(){ var iId = $(this).attr('id'); var tmpCenaZaSzt = $('#prCenaZaSzt'+iId).val(); var tmpIlosc = $('#prIloscSzt'+iId).val(); var tmpCena = parseFloat(tmpCenaZaSzt) * parseInt(tmpIlosc); alert(tmpCena); });
Generalnie to dziala ale czasami pojawiają się błędy w liczeniu np:
dla ceny 35.07 i ilosci 3 wynik wychodzi 105.21000000000001
dla tej samej ceny i ilosci 1 lub 2 lub 4 lub 5 jest OK
przy ilosci 6 lub 12 wychodzi odpowiednio 210.42000000000002 oraz 420.84000000000003.
Pytanie: dlaczego wyliczane sa te dodatkowe "000000000001","000000000002","000000000003" ?
Wygooglalem ze moge uzyc toFixed(2) i raz jeszcze parseFloat ale co w tym przypadku generuje takie bledy ?
za wszelkie informacje z gory dziekuje
Grzegorz