Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [js] Somma Di Numeri

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473

    [js] Somma Di Numeri

    Ciao a tutti!

    in un form ho diverse text con degli importi, per ogni text ho associato al comando onkeyup una funzione js "somma" e gli passo tutti i valori delle text che mi servono

    codice:
    <tr><td>Capitale</td><td><input type="text" id="capitale" name="capitale" style="width:100px;" value="0" onkeyup="javascript:somma(document.f1.capitale.value,document.f1.interessi.value,document.f1.penale.value,document.f1.spese_legali.value)"></td>
    
    <td>Interessi</td><td><input type="text" id="interessi" name="interessi" style="width:100px;" value="0" onkeyup="javascript:somma(document.f1.capitale.value,document.f1.interessi.value,document.f1.penale.value,document.f1.spese_legali.value)"></td>
    
    <td>Penale</td><td colspan="3"><input type="text" id="penale" name="penale" style="width:100px;" value="0" onkeyup="javascript:somma(document.f1.capitale.value,document.f1.interessi.value,document.f1.penale.value,document.f1.spese_legali.value)"></td>
    </tr>
            
    <tr><td>Penale Decoder</td><td><input type="text" id="penale_decoder" name="penale_decoder" style="width:100px;" value="0"></td>
    
    <td>Spese Legali</td><td><input type="text" id="spese_legali" name="spese_legali" style="width:100px;" value="0" onkeyup="javascript:somma(document.f1.capitale.value,document.f1.interessi.value,document.f1.penale.value,document.f1.spese_legali.value)"></td>
    
    <td>Totali</td><td colspan="3"><input type="text" id="tot" name="tot" style="width:100px;" value="0"></td></tr>

    Nella funzione somma ho scritto

    codice:
    function somma(af,bf,cf,df){	
    		var a=eval(af);
    		var b=eval(bf);
    		var c=eval(cf);
    		var d=eval(df);
    		
    		tot=a+b+c+d;
    		document.f1.tot.value=eval(tot);
    
    }
    dove mi calcola il totale e lo scrive dentro la text tot.

    Il mio problema è che se ad un campo inserisco un decimale (con il punto e non con la virgola), la somma è diversa; ESEMPIO: capitale= 20.52 il totale è 20.5199999999999

    come posso risolvere?

    Grazie!

    Ciao

  2. #2
    invece di eval, usa ParseFloat

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Grazie!
    ma prima della risposta avevo trovato che bastava usare la seguente funzione
    codice:
    tot=Math.round(tot * 100 ) / 100;
    ed ha funzionato, ora non mi aggiugne piu i decimali



    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.