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 (IMG:style_emoticons/default/smile.gif)

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

Z góry dziękuje
pozdrawiam
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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 14:51