Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sumowanie pól - problem z zaokrągleniem liczb
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
oepd
Witam serdecznie.

Mam następujący skrypt:

  1. UWAGA: zalozenie: liczby wpisujemy z przecinkiem
  2.  
  3. <br><br>
  4. liczba 1: <input type=text id=w1 onKeyUp="przelicz();" value='1,9'><br>
  5. liczba 2: <input type=text id=w2 onKeyUp="przelicz();" value='2,3'><br>
  6. liczba 3: <input type=text id=w3 onKeyUp="przelicz();" value='3'><br>
  7. wynik:<input tyle=text id=wynik>
  8. var suma=0;
  9.  
  10.  
  11. function przelicz(){
  12. for(i=1;i<4;i++){
  13. if(!isNaN(parseFloat(document.getElementById('w'+i).value))){
  14. suma+=(parseFloat(document.getElementById('w'+i).value.replace( ',','.')));
  15. }
  16. }
  17. document.getElementById('wynik').value=(suma.toString()).replace( '.',',') ;
  18. }
  19. przelicz();
  20.  


Problem polega na tym ze dla javy: 1,9+2,3+3 to 7,199999999999999, a jak zrobić żeby to było 7,2
match.round chyba odpada bo zaokrągla do liczby całkowitej.

To samo sie dzieje dla innych liczb smile.gif

Czy nie ma jakiegoś szybkiego, prostego sposobu aby to pokonać?

Z góry dziękuje
pozdrawiam
wookieb
[JAVASCRIPT] pobierz, plaintext
  1. Number(5.199).toFixed(2);
[JAVASCRIPT] pobierz, plaintext
oepd
Gotowe rozwiazanie: dzięki wookieb

  1. UWAGA: zalozenie: liczby wpisujemy z przecinkiem
  2.  
  3. <br><br>
  4. liczba 1: <input type=text id=w1 onKeyUp="przelicz();" value='1,9'><br>
  5. liczba 2: <input type=text id=w2 onKeyUp="przelicz();" value='2,3'><br>
  6. liczba 3: <input type=text id=w3 onKeyUp="przelicz();" value='3,0'><br>
  7. wynik:<input tyle=text id=wynik>
  8.  
  9. function przelicz(){
  10. var suma=0;
  11. for(i=1;i<4;i++){
  12. if(!isNaN(parseFloat(document.getElementById('w'+i).value))){
  13. suma+=(parseFloat(document.getElementById('w'+i).value.replace( ',','.')));
  14. }
  15. }
  16. document.getElementById('wynik').value=((Number(suma).toFixed(2)).toString()).replace( '.',',') ;
  17. }
  18. przelicz();


Bardzo dziękuję za mega szybką pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.