Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di KLINKO
    Registrato dal
    Sep 2002
    Messaggi
    285

    formattare un numero con solo 2 decimali

    <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
    <!--

    function calcola_totale_onclick() {
    var form = window.document.form
    var TotaleImponibile = new number(form.TotaleImponibile.value);
    var Sconto = new Number(form.Sconto.value);
    var Trasporto = new Number(form.Trasporto.value);
    var SpeseAggiuntive = new Number(form.SpeseAggiuntive.value);
    var Iva = new Number(form.Iva.value);
    var TotalePrezzo = TotaleImponibile - (TotaleImponibile * Sconto / 100) + Trasporto + SpeseAggiuntive
    TotalePrezzo = TotalePrezzo + (TotalePrezzo * Iva / 100)
    form.TotalePrezzo.value = TotalePrezzo
    }

    function window_onload() {
    calcola_totale_onclick();
    }

    //-->
    </SCRIPT>

    ho fuesta funzione.
    gira bene e fa il suo dovere

    sapete come si formatta il risulato finale contenuto in "TotalePrezzo" in modo che compaia con solo due decimali dopo il punto?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    numero=1.2345
    numero=Math.round(numero*100)/100

  3. #3
    Utente di HTML.it L'avatar di KLINKO
    Registrato dal
    Sep 2002
    Messaggi
    285


    anche se non ho capito xche moltiplicare * 100 e poi dividere * 100

    grazie comunque

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    la funzione round arrotonda il numero decimale all'intero + vicino.

    se lo moltiplichi per 100, sposti la virgola di due posizioni verso destra, salvando dal round i tuoi due decimali. Ridividendo per 100 te li rimetti dove erano.

    Se te ne servono 5 di decimali, basta moltiplicare e dividere per 100000

  5. #5
    ho lo stesso problema...ma la non mi funziona...come mai? :master:


    codice:
    var ivapercentuale = (quantita*valore)/100*20;
    ivapercentuale = Math.round(ivapercentuale*100)/100;
    document.getElementById('totiva'+n).value = ivapercentuale;

    mi scrive sempe e solo 1 decimale, anche se moltiplico e divido per 10000
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    Forse perché il secondo decimale è uguale a zero
    Se ivapercentuale è un numero intero moltiplicando per 100 e poi dividendo per 20 darà sempre un solo decimale
    rudyF

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    583
    volevo dire dividendo per 100 e poi moltiplicando per 20
    sai, la fretta .....

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Occorre aggiungere qualcosa se c'e un solo decimale:
    codice:
    function arrot2dec(num) {
      if(num.match(/^[\d\.]+$/) return "errore";
      var str = String(Math.round(num*100)/100);
      if(str.match(/^\d+$/) return str+".00";
      if(str.match(/^\d+\.\d$/) return str+"0";
      return str;
    }
    da chiamare con (ad esempio):
    var ivapercentuale = arrot2dec((quantita*valore)*20/100);

    Non lo ho testato.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    boh mi dava errore...alla fine ho pensato di scrivere la variabile in php usando number_format


    grazie comunque
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    prova a vedere su questo thread

    http://forum.html.it/forum/showthrea...hreadid=880484

    terz'ultimo post.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.