Arredondamento em javascript

5 respostas
S

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

5 Respostas

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

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

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.

A

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
J

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.

L

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

Criado 11 de janeiro de 2007
Ultima resposta 7 de dez. de 2010
Respostas 5
Participantes 6