Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]błędy w liczeniu
elmozaur
post
Post #1





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Witam.
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
[JAVASCRIPT] pobierz, plaintext
  1. $('.prId').each(function(){
  2. var iId = $(this).attr('id');
  3. var tmpCenaZaSzt = $('#prCenaZaSzt'+iId).val();
  4. var tmpIlosc = $('#prIloscSzt'+iId).val();
  5. var tmpCena = parseFloat(tmpCenaZaSzt) * parseInt(tmpIlosc);
  6. alert(tmpCena);
  7. });
[JAVASCRIPT] pobierz, plaintext

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

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 21:59