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

    Somma errata di numeri decimali

    Ciao a tutti,

    ho un problema con Javascript e la somma di numeri con due decimali. In alcuni casi Javascript sbaglia la somma. Penso sia un problema legato all'impossibilità di rappresentare in modo preciso alcuni numeri decimali. Però può anche darsi che sbaglio io, non conosco Javascript bene. Questo è il mio codice, che fa la somma del contenuto di una colonna di una tabella man mano che l'utente scrive (event onKeyUp):

    ........
    for(i = 1; i < (rows.length-1); i++) {
    var cols = rows[i].getElementsByTagName('td');
    var figli = cols[colIdx].childNodes;
    for (k = 0; k < figli.length; k++) {
    var itm = figli[k];
    if (itm.id == "targets:tabella:"+(i-1)+":"+campo) {
    var s = itm.value;
    s = new String(s);
    s = s.replace("\.","");
    s = s.replace(",", "\.");
    totale += ((isNaN(parseFloat(s)))?0arseFloat(s));[/B]
    }
    }
    }
    .......

    In buona sostanza trasformo in Stringa, tolgo il . delle migliaia, trasformo la virgola decimale in punto e poi sommo.

    Ho un caso. Se sommo questi numeri:
    75,68
    75,77
    76,77
    75,77
    74,79
    75,77

    Javascript dice : 454,54
    In realtà è : 454,55

    Sbaglio io da qualche parte?
    Mariella

  2. #2

    Risolto

    Si, è un problema di Javascript nella gestione di numeri decimali. Anche Java ha lo stesso problema.

    La soluzione è qui: http://jsfromhell.com/classes/bignumber

    :quote:
    Mariella

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.