Foros del Web » Programando para Internet » Javascript »

Problemas de extracción decimal, sin redondeo

Estas en el tema de Problemas de extracción decimal, sin redondeo en el foro de Javascript en Foros del Web. Hola, Recién estoy metiéndome en el mundo del JavaScript, pues y tengo unos problemas con los decimales… lo que quiero es obtener el número y ...
  #1 (permalink)  
Antiguo 15/05/2012, 22:15
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 1 mes
Puntos: 10
Problemas de extracción decimal, sin redondeo

Hola,

Recién estoy metiéndome en el mundo del JavaScript, pues y tengo unos problemas con los decimales… lo que quiero es obtener el número y dos de sus decimales y si falta uno, agregar un cero (Sin redondeos), ejemplo:

12.11111 = 12.11
12.11911 = 12.11
12.1 = 12.10
12 = 12.00

Pero la verdad no tengo ni idea como lógralo.

Gracias!
  #2 (permalink)  
Antiguo 16/05/2012, 01:08
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Problemas de extracción decimal, sin redondeo

Lo podés hacer asi

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. /* script */
  4. var n = 12.3323;
  5. alert(parseFloat(n).toFixed(2));
  6. var n2 = 1.9;
  7. alert(parseFloat(n2).toFixed(3));
  8. //]]>
  9. </script>

con parseFloat(), no aseguramos de tratar el número como tal y no como una cadena(esto sería en el caso de que estés recibiendo valores desde un form), con toFixed(x), estamos formateando el número, siendo x la cantidad de decimales que querés mostrar, los ceros, de ser necesario, se agregan solos. Mirá que para el 2 número puse 3 decimales, te va a mostrar 1.900

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 16/05/2012, 09:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 99
Antigüedad: 13 años, 1 mes
Puntos: 10
Respuesta: Problemas de extracción decimal, sin redondeo

Gracias emprear!

Tengo otro problemita :3 !

Mira si es..

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. /* script */
  4. var n = 12.3399999;
  5. alert(parseFloat(n).toFixed(2));
  6. //]]>
  7. </script>

me sale 12.34, como podria hacer para que me salga 12.33??

** edit

Una idea que se me vino fue con la funcion split(), pues navegando por el foro la encontre...

Lo que susederia es..

Código Javascript:
Ver original
  1. var Porcentaje
  2. var PorcentajeT
  3.  
  4. Porcentaje = 44.1299;
  5. Porcentaje.toString();
  6. PorcentajeT = Porcentaje.split('.');
  7. // PorcentajeT[0] - Entrero;
  8. // PorcentajeT[1] - Decimal;

Pero no sé porque me lanza el error "Porcentaje.split is not a function".

Pensé en dividirlos y después con substring quitaba 2 decimales y los volvía a combinar...

Última edición por doword; 16/05/2012 a las 10:00
  #4 (permalink)  
Antiguo 16/05/2012, 11:31
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Problemas de extracción decimal, sin redondeo

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. /* script */
  4. var n = 12.1;
  5. n = parseFloat(n);
  6. alert('Con redondeo: ' + parseFloat(n).toFixed(2));
  7. var a = Math.floor(n * 100) / 100;
  8. alert('Sin redondeo: ' + a.toFixed(2));
  9.  
  10. var n2 = 12.398491;
  11. n2 = parseFloat(n2);
  12. alert('Con redondeo: ' + parseFloat(n2).toFixed(2));
  13. var a2 = Math.floor(n2 * 100) / 100;
  14. alert('Sin redondeo: ' + a2.toFixed(2));
  15.  
  16. //]]>
  17. </script>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: decimal, extracción, redondeo
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 08:51.