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

    problema con la somma di due campi

    Ciao a tutti,
    Spero che mi riusciate a chiarire un dilemma:
    Perchè sommando 100 + 90.42 il risultato è 190.42000000000002
    questa e' l'istruzione che uso:
    window.opener.document.form1.input_imp_acc2.value = parseFloat(eval(window.opener.document.form1.input _imp_acc2.value) + eval(imp))

    Grazie in anticipo per l'attenzione!!!

  2. #2

    Non Risolto (somma javascript)

    Ma è proprio così difficile?
    Giulia

  3. #3

    Possibile causa

    Ciao Giulia,

    Il problema potrebbe essere il fatto che sommi un campo integer (100) con uno con la virgola. Dovestri trasformare 100 in 100.00 e sommarlo. Se hai bisogno ti scrivo il codice.
    Ciao Buon Lavoro
    Aquilasol - Gaudi
    soleterra@jumpy.it

  4. #4
    Grazie per la risposta, ma ho gia' provato...anche con i decimali non va!!!

  5. #5
    Anzi ti dirò di piu'...questo avviene solo con alcuni numeri come 100.00 ma non con 23.00 !!!

  6. #6
    Vedo di indagare.... strano 23.00.... ti faccio sapere
    Aquilasol - Gaudi
    soleterra@jumpy.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Avevo gia` affrontato l'argomento in maniera esaustiva tempo fa. Magari c'e` un link fra gli script utili.

    Comunque un numero decimale (con virgola) e` trattato dai computer come floating point, che consiste in una conversione strana con una base ed una mantissa (tutto numeri binari).
    Nella riconversione in decimale vengono introdotti quei decimali in piu`.

    La soluzione consiste nell'applicare l'arrotondamento (a due cifre):

    var temp = parseFloat(window.opener.document.form1.input_imp_ acc2.value) + imp;
    window.opener.document.form1.input_imp_acc2.value = Math.round(temp*100)/100;

    PS. lascia stare gli eval() che non portano nulla di buono e caricano il client inutilmente (oltre ad essere deprecati).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Grazie per l'interessamento!

  9. #9
    Funziona perfettamente...ti ringrazio ancora!

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.