Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    come arrotondare con 2 decimali in javascript ?

    ciao, a me servirebbe arrotondare con 2 decimali in javascript, dalla cifra 0 a 4 arrotondare per difetto, dalla 5 alla 9 arrotondare per eccesso.

    es.

    se ho 1,225 dovro' avere 1,23

    se ho 1,224 dovro' avere 1,22

    grazie

    billy
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  2. #2
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    il problema e'

    il problema e' che con Math.round la cifra 5 la arrotonda per difetto.....
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367

    Re: il problema e'

    Originariamente inviato da billy1
    il problema e' che con Math.round la cifra 5 la arrotonda per difetto.....
    a me no...
    prova
    codice:
    <script language="javascript">
    document.write('1,224 = '+(Math.round(1.224*100)/100)+'
    \n')
    document.write('1,225 = '+(Math.round(1.225*100)/100)+'
    \n')
    </script>

  4. #4
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    no...

    ecco il codice, per la cifra 8.745 mi viene fuori 8.74

    codice:
    function arrotonda(numero, numeroDecimali){ 
    var modificatore = "1"; 
    for(var i=0;i<numeroDecimali;i++){ 
    modificatore += "0"; 
    } 
    numero = numero * (parseInt(modificatore,10)); 
    // prima del 26 marzo 2004 :
    // numero = Math.round(numero);
    // fine prima del 26 marzo 2004
    
    // new 26 marzo 2004
    numero = Math.round((numero*100)/100); 
    // fine new 26 marzo 2004	
    		
    var risultato = numero / modificatore; 		
    return risultato 
    }
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  5. #5
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    pero'...

    ho sbagliato con le parentesi forse, pero' se le metto come dici tu, che cmq e' corretto, alla fine vedo pero' 3 decimali...
    ho messo in grassetto la cosa, alla fine mi viene fuori come risultato finale 8.745 , io vorrei visualizzare 8.75

    codice:
    function arrotonda(numero, numeroDecimali){ 
    var modificatore = "1"; 
    for(var i=0;i<numeroDecimali;i++){ 
    modificatore += "0"; 
    } 
    numero = numero * (parseInt(modificatore,10)); 
    // prima del 26 marzo 2004 :
    // numero = Math.round(numero);
    // fine prima del 26 marzo 2004
    
    // new 26 marzo 2004
    numero = Math.round(numero*100)/100;   // fine new 26 marzo 2004
    			
    var risultato = numero / modificatore; 
    		
    return risultato 
    }
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    riCiao billy1,

    scusa se rispondo solo ora ma sono stato un po' impegnato

    codice:
    function arrotonda(numero, numeroDecimali){ 
      var modificatore = '1'; 
      for(var i=0;i<numeroDecimali;i++)
        modificatore += "0"; 
      modificatore = parseInt(modificatore,10)
      return Math.round(numero*(modificatore))/(modificatore);   // fine new 26 marzo 2004
    }
    se servono spiegazioni chiedi pure... ma non credo

  7. #7
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    pero'

    ciao, ma ho visto che il numero 5 viene arrotondato per difetto in js, e' vero ?

    es. : 1,245

    diventa 1,24

    mentre in asp o vbscript diventerbbe 1,25

    infatti io ho delle pagine in asp / vbs in cui viene fouri 1,25, poi in una pagina in cui permetto di cambiare la quantita' dell'articolo da acquistare in un campo di testo, faccio l'evento onchange e appunto quando applico l'evento e quindi la funzione arrotonda, ottengo sempre 1,24 in js...
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao billy1,

    scusa se rispondo solo ora ma sono stato lontano dal pc per un po'...

    a me risulta il contrario. Cioè 1,245 in vb vine 1,24 e in js 1,25
    prova
    codice:
    <%@ Language=VBScript %>
    <html>
    <head>
    <title>test</title>
    <script language="JavaScript">
    function arrotonda(numero,x) {
      return Math.round(numero*Math.pow(10,x))/Math.pow(10,x);
    }
    </script>
    </head>
    <body>
    <font face="verdana">
    <%
    num = 1.243
    for i=0 to 4%>
    <%=num%> VB--> <%=Round(num,2)%>
    
    <font color="red"><%=Replace(num,",",".")%> JS--> <script language="javascript">document.write(arrotonda(<%=Replace(num,",",".")%>,2));</script></font>
    
    
    <%	
    	num=num+0.001
    next%>
    </font>
    </body>
    </html>
    secondo me bisognerebbe farsi una funzione in vb che si comporti come quella in js

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.