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
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.
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.
a me no...Originariamente inviato da billy1
il problema e' che con Math.round la cifra 5 la arrotonda per difetto.....
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>![]()
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.
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.
riCiao billy1,
scusa se rispondo solo ora ma sono stato un po' impegnato![]()
se servono spiegazioni chiedi pure... ma non credocodice: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 }
![]()
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.
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
secondo me bisognerebbe farsi una funzione in vb che si comporti come quella in jscodice:<%@ 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>
![]()