Arredondamento em javascript

Olá
Tenho o seguinte valor 25.895 e gostaria de arredonda-lo para 25.90

Nessa function ele esta arredonda assim : 25.9
function arredondamento (x, n)
{
if (n < 0 || n > 10) return x;
var pow10 = Math.pow (10, n);
var y = x * pow10;
return Math.round (y) / pow10;
}

o que eu teria que fazer para deixa-lo 25.90?

Grato

Silva

&lt;script&gt;
	var valor = 25.895;
	var resultado = ((Math.round(valor*100))/100);

        window.alert(resultado);
&lt;/script&gt;

O que o OP quer é que alguém consiga formatar o número "25.9" de forma que ele tenha sempre 2 casas depois da vírgula.

Eu fiz isso há muito tempo atrás, e acho que o truque era fazer o seguinte:

  • Ver se o número é positivo ou negativo
  • Se for positivo, então pegar o tal número, e ver se ele é muito grande (não lembro qual é o valor máximo. Eu sei que se o número for muito grande em JavaScript ele é mostrado em notação científica sempre).
  • Se ele não for muito grande, então pegar o número, e separar em duas partes:
    =&gt A parte inteira (25)
    =&gt A parte fracionária (0.90)
    Então, para visualizar o número, pegamos a parte inteira, concatenamos com "," ou "." (dependendo de suas preferências), e então concatenamos com o valor da parte fracionária, multiplicado por 100, arredondado (ou seja, 0.89997 * 100 e arredondado dá 90), completado com um à esquerda se for necessário (ou seja, se o número fosse 25.09, então teríamos 0.09, que multiplicado por 100 e arredondado dá 9. Como 9 tem apenas 1 dígito, devemos pôr um zero à esquerda.

Se o número for negativo, transforme-o em positivo (lembrando de anotar o sinal), faça o que mostrei acima, e complete com o sinal depois.

Ou seja, crie um método para fazer isso que eu mostrei.

Se for o que o thingol falou, isso aqui resolve seu problema mais facilmente:

 var numero = 155.5;
 var numero2casas = numero.toFixed(2); //Esse retorna 155.50

Se você tiver o IE a partir do 5.5 e Netscape 6 pode utilizar a seguinte função, toFixed().

Ex.:


<SCRIPT LANGUAGE="JavaScript">
<!--
var num = 25.895;
alert(num.toFixed(2));
</SCRIPT>

Isso arredondará as casas decimais em 2 casas. Se o próximo número do segundo número for um 5 esse segundo será arredondado para cima e se for um número abaixo de 5 o valor não muda.

Tudo bem gente isso dá certinho quando usamos ponto, mas quando usamos vírgula não dá certo.

Alguém sabe como faz com vírgula?

Grata.
La