Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Somma con valori negativi che non va...

    Ciao ragazzi,
    uso questo codice per sommare i valori provenienti da campi di testo, purtroppo se si inseriscono valori negativi, come per esempio in una nota di credito, non viene calcolata la somma.

    Potete aiutarmi?

    codice:
    totale_imponibile = parseFloat("0" + document.form1.art4_1.value) + parseFloat("0" + document.form1.art4_2.value) + parseFloat("0" + document.form1.art4_3.value) + parseFloat("0" + document.form1.art4_4.value) + parseFloat("0" + document.form1.art4_5.value) + parseFloat("0" + document.form1.art4_6.value) + parseFloat("0" + document.form1.art4_7.value) + parseFloat("0" + document.form1.art4_8.value) + parseFloat("0" + document.form1.art4_9.value) + parseFloat("0" + document.form1.art4_10.value) + parseFloat("0" + document.form1.art4_11.value) + parseFloat("0" + document.form1.art4_12.value) + parseFloat("0" + document.form1.art4_13.value) + parseFloat("0" + document.form1.art4_14.value) + parseFloat("0" + document.form1.art4_15.value) + parseFloat("0" + document.form1.art4_16.value) + parseFloat("0" + document.form1.art4_17.value) + parseFloat("0" + document.form1.art4_18.value) + parseFloat("0" + document.form1.art4_19.value) ;
    document.form1.totale_imponibile.value = Math.round(totale_imponibile*100)/100
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A che ti serve aggiungere lo "0" davanti ai valori!? Toglilo.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    se tolgo lo zero non mi calcola piu il totale...

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non è proprio possibile... si vede che ci sono altre magagne in giro per lo script. Posta tutta la pagina, o ancora meglio, un link alla pagina online così che la si possa vedere
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Purtroppo la pagina non te la posso postare, in quanto è un programma realizzato per una azienda.
    Però ti metto a disposizione per il download la pagina,l così magari puoi vedere se ci sono cose che non vanno.
    http://www.assoluto.it/download/insert_fattura.zip

    Grazie mille!

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Torna un errore su un include. Guarda mi basta il codice HTML che arriva a browser (e tutti gli script se sono inclusi esternamente), mica l'accesso all'area riservata o altro.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    opperbacco! Allora, se non vuoi impazzire, usa gli array... ossia invece di avere millemila casi per millemila campi (e righe di tabella) avrai una sola funzione che fa i calcoli, a tale funzione potresti passare un riferimento al campo (tramite this o l'id).

    Mancano tutti i ";" (magari mi dirai che si può programmare senza in javascript, però è buona norma metterli)

    Poi ho cominciato a sistemare, con la tua struttura (lascio a te la scelta se continuare con i 20 casi o con un semplice array). Ho sistemato le funzioni per le prime 2 righe:

    codice:
    totale_imponibile = parseFloat(document.form1.art4_1.value) + parseFloat(document.form1.art4_2.value); 
    document.form1.totale_imponibile.value = Math.round(totale_imponibile*100)/100;
    
    totale_iva = parseFloat(document.form1.art5_1.value) + parseFloat(document.form1.art5_2.value);
    document.form1.totale_iva.value = Math.round(totale_iva*100)/100;
    
    totale = parseFloat(document.form1.art6_1.value) + parseFloat(document.form1.art6_2.value);
    document.form1.totale.value = Math.round(totale*100)/100;
    
    totale_scontato = parseFloat(document.form1.art8_1.value) + parseFloat(document.form1.art8_2.value);
    document.form1.totale_scontato.value = Math.round(totale_scontato*100)/100;
    }
    e questo va sia in FF che in IE anche con i numeri negativi.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    A che ti serve aggiungere lo "0" davanti ai valori!? Toglilo.


    se tolgo lo zero non mi calcola piu il totale...
    :master: non so se possa servire
    questa è una procedura che calcola la somma

    function somma()
    {
    var s = 0;
    for(var i = 0; i < arguments.length; i++)
    {
    var n = arguments[i];
    s += ((isNaN(parseFloat(n)))?0arseFloat(n));
    }
    return s;
    }

    e la richiamo così:

    alert(somma($("Text1").value, $("Text2").value));
    Pietro

  10. #10
    So benissimo che avrei dovuto usare gli array, ma purtroppo il javascript non è proprio il mio liunguaggio di programmazione preferito, e quanto misi mano a questo programma non riuscii a trovare una soluzione veloce, e quindi misono arrangiato con righe e righe di codice.

    Lo zero lo metto perchè se inserisco un solo valore, cioè solo la prima riga, non riesce a calcolare il totale, cosa che invece fa con lo zero...
    Infatti il tuo codice ha esattamente questo problema, compilando solo la prima riga, il totale mi restituisce NaN....

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.