2 decimales con JavaScript

Deseo saber como reporto o cambio el formato de un numero decimal a solo 2 decimales en JavaScript, es para realizar una simulación de créditos en la web, pero el resultado final debe ser de dos decimales.

4 respuestas

Respuesta
1
Te mando código que redondea a los decimales que tu le digas, solo tendrás que modificarlo para tu caso concreto.
<html>
<head><title>cajas de texto y javascript - ejemplo 50</title>
<script>
function roundOff(value, precision)
{
value = "" + value //convert value to string
precision = parseInt(precision);
var whole = "" + Math.round(value * Math.pow(10, precision));
var decPoint = whole.length - precision;
if(decPoint != 0)
{
result = whole.substring(0, decPoint);
result += ".";
result += whole.substring(decPoint, whole.length);
}
else
{
result = whole;
}
return result;
}
</script>
</head>
<body bgcolor="#ffff99">
<h3><center>redondea un número a los decimales
indicados</CENTER></H3>
<form name=myForm>
<pre>
entra un número con muchos decimales: <input name=text1 value=5.199999999999999999
>
?Cuantos decimales debe tener el resultado?<INPUT onblur="myForm.text3.value =
roundOff(myForm.text1.value, myForm.text2.value)" size=2 name=text2 ?>
resultado:.................................<INPUT name=text3>
</PRE>
<CENTER></CENTER></FORM>
Respuesta
1
Si conviertes el numero a string, puedes poner solo un substring...
Por ejemplo:
<script>
a=Math.random();
a=a+"";//concatenando, se hace string
a=a.substring(0,4);//asi son 2 decimales
document.write(a);
</script>
Respuesta
1
Buebnas como estas, te mando una función que realiza la operación que estas buscando, es decir, te formatea el valor que le pases a dos decimales.
function MoneyFormat(amount) {
var val = parseFloat(amount);
if (isNaN(val)) { return "0.00"; }
if (val <= 0) { return "0.00"; }
val += "";
// Next two lines remove anything beyond 2 decimal places
if (val.indexOf('.') == -1) { return val+".00"; }
else { val = val.substring(0,val.indexOf('.')+3); }
val = (val == Math.floor(val)) ? val + '.00' : ((val*10 ==
Math.floor(val*10)) ? val + '0' : val);
return val;
}
Respuesta
1
Encontrarás la respuesta en
http://javascriptkit.com/javatutors/round.shtml
var original=28.453
1) //round "original" to two decimals
var result=Math.round(original*100)/100 //returns 28.45
2) // round "original" to 1 decimal
var result=Math.round(original*10)/10 //returns 28.5
3) //round 8.111111 to 3 decimals
var result=Math.round(8.111111*1000)/1000 //returns 8.111
Leelo y comprobarán como hacerlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas