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

    somma di 2 numeri condecimali

    Aiuto, sto impazzendo !
    Devo fare la somma di 2 numeri con decimali che raccolgo da campi di un form.
    Il problema è che se faccio la somma di 2 numeri tipo 0,4 + 0,5 il risultato che ottengo è corretto cioè 0,9 .
    Se invece sommo 0,6 con 0,7 invece che 1,3 ottengo 1,2999999999999998 !!!

    Ma come è possibile ???
    Lo script è questo (i valori sono fissi per la prova che sto facendo) :

    var commissionet="0,7"
    var commissioneb="0,6"
    commissionetp=parseFloat(commissionet.replace(/[,]/g,'.'))
    commissionebp=parseFloat(commissioneb.replace(/[,]/g,'.'))
    commtotali=commissionetp+commissionebp

    il risultato (commtotali) è appunto quel valore assurdo che ho scritto sopra invece che 1,3.
    Dove sbaglio ????

  2. #2
    prova a utilizzare gli arrotondamenti dell'oggetto Math.

    ciao

  3. #3
    Originariamente inviato da var
    prova a utilizzare gli arrotondamenti dell'oggetto Math.

    ciao
    Ciao Var e grazie per il suggerimento.
    Ho letto le info al link che mi hai suggerito, ma non sono sicuro di avere trovato la soluzione.

    Alla fine ho provato a moltiplicare per 100 i valori singoli prima di sommarli, dividendoli poi sempre per 100 alla fine.
    In pratica:
    commissionetp=parseFloat(commissionet.replace(/[,]/g,'.'))*100
    commissionebp=parseFloat(commissioneb.replace(/[,]/g,'.'))*100
    commtotali=(commissionetp+commissionebp)/100

    Così funziona, ma è assurdo dover usare un trucchetto del genere...

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.