Foros del Web » Programando para Internet » Javascript »

(aporte y duda) Limitar cualquier numero a dos decimales

Estas en el tema de (aporte y duda) Limitar cualquier numero a dos decimales en el foro de Javascript en Foros del Web. Hola, tras buscar por la red encontré un codigo muy sencillo que sirve para limitar el numero a dos decimales.. Código PHP: < button onclick = ...
  #1 (permalink)  
Antiguo 02/04/2018, 11:16
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 7 meses
Puntos: 4
De acuerdo (aporte y duda) Limitar cualquier numero a dos decimales

Hola, tras buscar por la red encontré un codigo muy sencillo que sirve para limitar el numero a dos decimales..

Código PHP:
<button onclick="myFunction()">Try it</button>

<
p id="demo"></p>

<
script>
function 
myFunction() {
    var 
num 5.56789;
    var 
num.toFixed(2);
    
document.getElementById("demo").innerHTML n;
}
</script> 
La gran duda que tengo, es como podría ese javascript limitar a 2 decimales a un numero que esta dentro de un div y sin usar el boton si no hacerlo de forma automatica?

Ejemplo <div class="numerolargo">5.53244</div> convertirlo a <div class="numerolargo">5.53</div>



Muchas Gracias
  #2 (permalink)  
Antiguo 02/04/2018, 12:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

Con el código que muestras, solo necesitarías ejecutar la función cuando haya terminado de cargar el documento HTML.

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", myFunction);

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 02/04/2018, 12:10
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 7 meses
Puntos: 4
De acuerdo Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

+1

Muchas Gracias, ahora bien como podria hacer que el javascript afecte a un div en concreto?

Tengo un div que el numero en su interior varia, entonces me gustaria que ese javascript le quite los decimales que sobran..

Muchas Gracias
  #4 (permalink)  
Antiguo 02/04/2018, 12:20
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

Edita el DOM

Código Javascript:
Ver original
  1. Number(this.innerHTML).toFixed(2)
  #5 (permalink)  
Antiguo 02/04/2018, 13:21
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

En ese caso, y siguiendo con tu código, la función tendría que recibir como argumento el identificador del elemento, tomarías el contenido del mismo con cualquiera de las propiedades existentes para hacer eso, y harías la delimitación de decimales.

Código Javascript:
Ver original
  1. function myFunction(id){
  2.     var elem = document.getElementById(id);
  3.     elem.textContent = parseFloat(elem.textContent).toFixed(2);
  4. }
  5.  
  6. myFunction("id del elemento");

Con la función parseFloat(), se le da formato a la cadena contenida en el elemento, resultando un número de punto flotante. Esto se debe hacer debido a que el método .toFixed() no opera sobre cadenas de caracteres, que es lo que contiene el elemento, independientemente de que gráficamente sea un valor numérico.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 02/04/2018, 14:26
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 7 meses
Puntos: 4
Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

Muchas Gracias por tu ayuda, bueno acabo de montarlo todo así:

<script type="text/javascript">
function myFunction(id){
var elem = document.getElementById(id);
elem.textContent = parseFloat(elem.textContent).toFixed(2);
}

myFunction("carrito");
</script>

<div id="carrito">6.43534534</div>

pero algo hago mal por que no me funciona..

+1 por la ayuda
  #7 (permalink)  
Antiguo 02/04/2018, 19:13
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

Lleva el javascript al final del archivo.

Ambos códigos tienen el mismo problema de redondeo. Creo que con el método Math.floor puedes solventarlo

Código Javascript:
Ver original
  1. console.log((Math.floor(2.436756 * 100) / 100).toFixed(2))
  #8 (permalink)  
Antiguo 03/04/2018, 12:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

Complementando la respuesta de mpozo, puedes ejecutar la llamada a la función al término de la carga de los elementos del documento, de una manera muy similar a como te lo mostré al inicio.

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     myFunction("carrito");
  3. });

Esto es porque, hasta ahora, la función se ejecuta antes de que cargue el elemento HTML en cuestión, por lo cual, no lo encuentra y no logra tomarse valor alguno.

En cuanto a la cantidad de decimales, si lo que deseas es redondear la cifra, dejando dos decimales, debes optar por la opción de mpozo; y si solo quieres limitar la cantidad de decimales a mostrar, sigue como lo vienes haciendo.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 04/04/2018, 04:43
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

O lo he entendido mal o es al revés

Código Javascript:
Ver original
  1. // Si no se quiere el redondeo
  2.  
  3. console.log((Math.floor('2.436756' * 100) / 100).toFixed(2)) // 2.43
  4.  
  5. // Si no importa el redondeo
  6. console.log(Number('2.436756').toFixed(2)) // 2.44
  #10 (permalink)  
Antiguo 05/04/2018, 07:25
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: (aporte y duda) Limitar cualquier numero a dos decimales

Hay un metodo nativo

function myToFixen(n,d){
n *= 10**d;
n = n|0;
n /= 10**d;
return n;
}

Etiquetas: html, java, limitar, numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:25.