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 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:
=> A parte inteira (25)
=> 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 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.