Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sumowanie pól - problem z zaokrągleniem liczb
oepd
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.06.2010

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


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


--------------------
człowiek uczy się całe życie...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




[JAVASCRIPT] pobierz, plaintext
  1. Number(5.199).toFixed(2);
[JAVASCRIPT] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
oepd
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.06.2010

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


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


--------------------
człowiek uczy się całe życie...
Go to the top of the page
+Quote Post

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: 21.08.2025 - 15:58