Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555

    somma numeri con virgola

    Salve vorrei poter fare la somma di alcuni campi che contengono valori con virgola.
    Per esempio 10,5 + 14 = 24,5.
    Da questo forum ho preso questa funzione che funge con solo numeri interi.
    codice:
    <script language="JavaScript">
    function somma() {
    
    	var c1 = document.getElementById("campo1")
    	var c2 = document.getElementById("campo2")
          var c7 = document.getElementById("campoRisultato")
    
       c7.value = parseInt(c1.value) + parseInt(c2.value) }
    </script>
    Si può?

    grazie

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    Re: somma numeri con virgola

    prova così:

    codice:
    <script language="JavaScript">
    function somma() {
    
    	var c1 = parseFloat(document.getElementById("campo1").value, 10);
    	var c2 = parseFloat(document.getElementById("campo2").value, 10);
          var c7 = document.getElementById("campoRisultato")
    
       c7.value = c1 + c2;
    }
    </script>
    P.s. I numeri da inserire devono avere il punto decimale, non la virgola

    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Grazie, funziona.
    parseFloat? Come il campo float di mysql?
    .value,10. Il 10 per cosa sta?
    Se il campo risultato lo volessi formattare con due cifre decimali; nel senso 10.45 + 10.05 visualizza 10.5; possibile mettere 10.50?

    Grazie per la risposta.

    ciao

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ti commento lo script
    codice:
    function somma() {
    	//metto in c1 il valore di campo1 trasformato in float
    	var c1 = parseFloat(document.getElementById("campo1").value);
    	//se c1 non è un numero lo imposto a 0
    	if(isNaN(c1))c1=0.0
    	//metto in c2 il valore di campo2 trasformato in float
    	var c2 = parseFloat(document.getElementById("campo2").value);
    	//se c2 non è un numero lo imposto a 0
    	if(isNaN(c2))c2=0.0
    	//sommo i due numeri e trasformo in stringa
    	var c7 = (c1 + c2)+'';
    	//creo un array splittando sul separatore dei decimali
    	var arr = c7.split('.')
    	//aggiungo 00 alla parte decimale
    	arr[1]=(arr.length>1)?arr[1]+'00':'00';
    	//tengo solo i primi due caratteri della parte decimale
    	arr[1]=arr[1].substr(0,2);
    	//visualizzo in campoRisultato unendo gli elementi dell'array con .
    	document.getElementById("campoRisultato").value=arr.join('.');
    }
    il 10 usato da fcaldera nel parseFloat dev'essere stata una svista. Il parseFloat ha un solo parametro(la stringa da trasfomare)
    è nel parseInt che si usa il secondo parametro per indicare se la stringa rappresenta numeri decimali, ottali, ecc..

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.