Visualizzazione dei risultati da 1 a 9 su 9

Discussione: cifre decimali

  1. #1

    cifre decimali

    ciao a tutti,
    ho qst script che mi somma dei valori di campi input text... però non so come fare per far si che il totale abbia sempre due cifre decimali anke ,00 ovviamente..
    codice:
    function totale() {     
    var totale = 0;     
    for (var i = 1; i <= 16; i++)     {         
    n = document.getElementById("txtHint_sel" + i).value;         
    totale += ((isNaN(parseFloat(n)))?0:parseFloat(n));     
                              }      
    document.getElementById("tot").innerHTML=totale 
    }
    avevo trovato qst ma non mi funziona...
    codice:
    function roundTo(value, decimalpositions) {     
    var i = value * Math.pow(10,decimalpositions);     
    i = Math.round(i);     
    return i / Math.pow(10,decimalpositions); 
    }
    grazie in anticipo!!!!!!

  2. #2
    Utente bannato
    Registrato dal
    Dec 2008
    Messaggi
    78

    Arrotondare ai decimali

    18,72832 e vorresti 18,73

    Math.round() arrotonda al numero intero più prossimo.

    Se gli sposto la virgola e faccio macinare 1872,832 alla funzione Math.round() ottengo 1873 al quale, per ri-dargli la virgola, lo posso ora dividere per 100.
    Mentre prima in effetti l'ho moltiplicato, per 100.

    Quindi si fa così:

    Math.round(18,72832 *100)/100;

    Analogamente, Math.round(18,72832 *1000)/1000; per arrotondare ai millesimi.

  3. #3
    ho provato cosi... ma non va...
    codice:
    function totale() {    
     var totale = 0;     
    for (var i = 1; i <= 16; i++)     {
             n = document.getElementById("txtHint_sel" + i).value;         
    totale += ((isNaN(parseFloat(n)))?0:parseFloat(n));     
    }     
    tot=Math.round(totale *100)/100;     
    document.getElementById("tot").innerHTML=tot }
    è una somma di prezzi in euro.... quindi se sommo 100.00+123.00
    voglio avere 223.00 e NON 223

  4. #4
    Mi sono ricordato di avere risposto tempo fa ad una domanda simile, QUI
    Utilizzando quella funzione, il tuo codice diventa:
    codice:
    function totale() {    
     var totale = 0;     
    for (var i = 1; i <= 16; i++)     {
             n = document.getElementById("txtHint_sel" + i).value;         
    totale += ((isNaN(parseFloat(n)))?0:parseFloat(n));     
    }     
    // Questa non serve piu': ci pensa la funzione  tot=Math.round(totale *100)/100;
    document.getElementById("tot").innerHTML=formatValuta(totale) }
    Nota che la funzione ci mette anche i punti fra le migliaia. Se non ti servono, modificala!

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    si usa il metodo toFixed()

    codice:
    var num = 13.39 * 3.41;
    alert(num);
    alert(num.toFixed(2));
    Vuoi aiutare la riforestazione responsabile?

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

  6. #6
    grazie ad entrambi .. comunque la soluzione di homezappa non va in firefox....

  7. #7
    Ma la hai aggiunta la funzione di cui ti ho scritto il link?
    (cio&egrave; questa?)
    codice:
    function formatValuta(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+'.'+
        num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num + ',' + cents);
    }
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    è sicuramente preferibile utilizzare il metodo nativo piuttosto che una funzione che fa uso di più metodi dell'oggetto 'Math', se non altro per facilità di sviluppo, robustezza e velocità di esecuzione.
    Vuoi aiutare la riforestazione responsabile?

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

  9. #9
    certo che la funzione l'ho aggiunta... cmq tanto ho risolto!!!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.