Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Somma di numeri che visualizza numero strano

    Ho il seguente codice Javascript:

    var tot = 0.0;
    function calcola(n) {
    tot += n;
    alert(tot);
    }

    La funzione viene chiamata da un pulsante in una form e gli passa valori del tipo:

    0.8
    1.1
    5.0

    Il problema è che dopo qualche click tot vale un numero strano, per es.

    chiamo calcola(0.8);
    chiamo calcola(1.1);

    ecco che tot vale 1.9000000000000001 invece di 1.9 come mi aspetto!

    Sapete cosa potrebbe essere?
    by fede089

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    I numeri in javascript sono rappresentati in memoria ed utilizzati nei calcoli in virgola mobile a precisione doppia... un errore di poche frazioni su ogni miliardo mi pare proprio ininfluente

    Se ti occorre visualizzare i risultati arrotondati puoi usare uno dei metodi dell'oggetto Math... vedi qui http://www.devguru.com/technologies/...ript/10734.asp

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Forse il problema è che tot è una variabile globale.

    Dovresti reinizializzarla ogni volta dentro la funz. calcola().

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  4. #4
    ok, ho capito. Grazie mille!
    by fede089

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da mirkoagrati
    Forse il problema è che tot è una variabile globale.

    Dovresti reinizializzarla ogni volta dentro la funz. calcola().

    Ciao
    non l'ho capita... mi sfugge come sarebbe possibile fare tot += n;
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da mirkoagrati
    Forse il problema è che tot è una variabile globale.

    Dovresti reinizializzarla ogni volta dentro la funz. calcola().

    Ciao

    Ti consiglio questa lettura: http://forum.html.it/forum/showthrea...virgola+mobile

    è un po' pallosa ma andrea è un vero maestro
    Pietro

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.