Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di vispone
    Registrato dal
    Feb 2003
    Messaggi
    177

    Come si sommano due variabili?

    Ciao a tutti.

    Essendo alle prime armi mi areno su delle stronzate assurde come questa:

    <script language="JavaScript">
    function revi (){
    var aimm = document.formrev.arev.value
    var aatt = document.formrev.aod.value
    var calca = aimm + aatt
    document.formrev.calcreva.value = calca
    }
    </script>


    nella var calca posso inserire qualsiasi operatore aritmetico e tutto funziona tranne la somma perchè di sommarli unisce i valori es:
    5+5 non è = a 10 ma a 55, perchè? dove sbaglio?

  2. #2
    Quando leggi il valore
    dal form esso è una stringa.
    Per poter sommare i due valori come numeri
    devi convertirli da stringhe in numeri
    con parseInt()

    Quindi:
    var aimm = parseInt(document.formrev.arev.value)
    var aatt = parseInt(document.formrev.aod.value)

    Il resto uguale

    Ciao
    La farfalla continuerà a librarsi sui campi e la goccia di rugiada brillerà ancora sull'erba quando le piramidi saranno ormai appiattite e non esisteranno più i grattacieli
    di New York

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    con var aimm = parseFloat(document.formrev.arev.value)
    considera anche i decimali

    occhio che se il primo carattere della stringa non è numerico restituisce un bel NaN (Not a Number)
    quindi sarebbe il caso di eseguire un controllo e visualizzare un messaggio x l' utente in caso di inserimento errato
    ciao

  4. #4
    Utente di HTML.it L'avatar di vispone
    Registrato dal
    Feb 2003
    Messaggi
    177
    OK funziona grazie mille a tutti.

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.