Foros del Web » Programando para Internet » Javascript »

Controlar el número de decimales [no web]

Estas en el tema de Controlar el número de decimales [no web] en el foro de Javascript en Foros del Web. Hola a todos por acá Estaba revisando esta Faq: http://www.forosdelweb.com/f13/faqs-...tml#post501299 Pero resulta que necesito algo no aplicado a web... Si estoy obteniendo un valor de ...
  #1 (permalink)  
Antiguo 06/07/2008, 23:15
Avatar de RobiBaggio
Colaborador
 
Fecha de Ingreso: enero-2005
Ubicación: Mind
Mensajes: 13.554
Antigüedad: 19 años, 3 meses
Puntos: 150
Controlar el número de decimales [no web]

Hola a todos por acá

Estaba revisando esta Faq:

http://www.forosdelweb.com/f13/faqs-...tml#post501299

Pero resulta que necesito algo no aplicado a web... Si estoy obteniendo un valor de la posición de un objeto con 20 decimales, y quiero controlar para que me de un valor con una o sin decimales, qué codigo no web haría falta?... Algo como en Action Script sería Math.Ceil... No se cómo será en Javascript =P

Más específicamente estoy trabajando con Expresiones dentro de Adobe After Effects que maneja Javascript, solo que no he encontrado una referencia en sus manuales sobre esto.

Una manito?
  #2 (permalink)  
Antiguo 07/07/2008, 00:35
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Controlar el número de decimales [no web]

haz intentado con Math.round()? Ya que por lo que veo lo que quieres hacer es eliminar los decimales, pues Math.ceil te redondea un numero a su entero inmediato superior. Ejemplo

Math.ceil(3.2) //regresa 4

Por otro lado si usas Math.floor te redondea a su numero inmediato inferior. Ejemplo

Math.floor(3.8) //regresa 3

Como vez sin importar si el decimal es mayor o menor a 5 te redondea al numero inmediao inferior o superior según uses Math.floor o Math.ceil respectivamente.

Sin embargo si usas Math.round() te redondea al numero entero inmediato mas cercano. De tal modo que:

Math.round(3.2) //regresa 3

pero

Math.round(3.8) //regres 4

Saludos y espero te sirva el comentario. Por cierto, no lo mencioné pero Math.ceil también está disponible en javascript al igual que Math.round y Math.floor. Estos tres métodos de la clase MAth también están disponibles en action script.
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 07/07/2008, 01:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Controlar el número de decimales [no web]

Hola Robi :

La verdad es que en las FAQs tal vez no esté, pero hemos hablado del tema en distintas ocasiones. Como sé que he participado en alguna, he buscado por mi nombre de usuario y la palabra decimales, y encontré unos cuantos temas.
En algunos navegadores funciona (o funcionaba) toFixed(decimales), tal vez ya lo soporten mejor, y tal vez Affter Efects lo implemente, de todos modos te paso un enlace donde se ha bablado: Controar decimales de un numero

Saludos

Edito: confirmado en los 4 navegadores que uso:
Código:
<body onload="alert(Math.PI.toFixed(2))">
devuelve 3.14
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 07/07/2008 a las 01:34 Razón: Comprobada la respuesta
  #4 (permalink)  
Antiguo 07/07/2008, 09:12
Avatar de RobiBaggio
Colaborador
 
Fecha de Ingreso: enero-2005
Ubicación: Mind
Mensajes: 13.554
Antigüedad: 19 años, 3 meses
Puntos: 150
Respuesta: Controlar el número de decimales [no web]

Probando...

Sobre el lenguaje, AE indica esto:

Cita:
El lenguaje de expresión de After Effects está basado en JavaScript 1.2, con un conjunto extendido de objetos integrados. After Effects utiliza solamente el lenguaje JavaScript 1.2 estándar principal, no las extensiones específicas del explorador Web. After Effects contiene su propio conjunto de objetos de extensión, como Capa, Comp, Material de archivo y Cámara, que pueden utilizarse para acceder a la mayoría de los valores de un proyecto de After Effects.
Como es la prima volta que me emto con javascript, no estoy muy seguro de la versión que se maneje... Pero las expresiones usadas, son extremadamente simples, por eso preguntaba, en los ejemplos que encontré tiran unos codigos "más extensos" para solo redondear decimales o eliminarlas... Andaba buscando si Mayh.ceil, o .floor o .round eran aceptadas, solo me falta ver si en realidad funcionan y en qué aprte meterlas... AE lleva su sintaxis, no se si sea igual en todos lados, ya estoy viendo algunos temas...

Sigo probando, ya les aviso si funcionó y cómo funcionó...

Estoy tomando un valor arrojado por el movimiento de un objeto mediante una acción, es donde estoy probandocómo insertar el código... :craneando:

Última edición por RobiBaggio; 07/07/2008 a las 09:19
  #5 (permalink)  
Antiguo 07/07/2008, 11:33
Avatar de RobiBaggio
Colaborador
 
Fecha de Ingreso: enero-2005
Ubicación: Mind
Mensajes: 13.554
Antigüedad: 19 años, 3 meses
Puntos: 150
Respuesta: Controlar el número de decimales [no web]

buzu. Efectivamente, si funcionan los Mat.x Gracias!!!

Master caricatos, en este código:

Código:
(Math.PI.toFixed(2));
El valor PI es un valor específico, pero si lo sustituyo por una variable me marca error... Me dice que no es un parámetro del objeto Math esa variable... Lo que necesitaría es que el valor aleatorio obtenido del movimiento del objeto, se redondée a las decimales que le indique... Con Math.round, lo dejo sin decimales, pero si aplico ese codigo interpreta el valor de la variable PI como parte dle objeto Math y tira error... Alguna sugerencia¿?

El código que tengo es este:

Código:
s=thisComp.layer("movimiento").position.speedAtTime(time);
Math.round(s);
Pero si aplico:

Código:
s=thisComp.layer("movimiento").position.speedAtTime(time);
z=Math.s.toFixed(2);
o

Código:
z=(Math.s.toFixed(2));
Nomás no...

Graicas capos!!!
  #6 (permalink)  
Antiguo 07/07/2008, 11:37
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Controlar el número de decimales [no web]

Hola Robi

No hay que pasarse con las Mathemáticas

Código:
s = 12.1234567;
z = s.toFixed(2);
Espero que te sirva.

Saludos,
  #7 (permalink)  
Antiguo 07/07/2008, 11:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Controlar el número de decimales [no web]

¿No debería ser solamente?:
Código:
s.toFixed(2)
EDITO: Lo siento JavierB, me ganaste, pero no era mi intención repetir tu acertada respuesta . Empecé a escribir antes que pusieras tu respuesta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 07/07/2008, 11:41
Avatar de RobiBaggio
Colaborador
 
Fecha de Ingreso: enero-2005
Ubicación: Mind
Mensajes: 13.554
Antigüedad: 19 años, 3 meses
Puntos: 150
Respuesta: Controlar el número de decimales [no web]

Me cago!!! Estaba terminando de darle formato al mensaje y ya estaba la respuesta

Sí, funciona!!!

Código:
s=thisComp.layer("movimiento").position.speedAtTime(time);
z=s.toFixed(2);
Un usuario más feliz de pasarse por javascript!! Gracias capo Javi!!!

-----
Edito.
Bueno, uso "z" porque ese valor lo ocuparé para otra cosa...
  #9 (permalink)  
Antiguo 07/07/2008, 11:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Controlar el número de decimales [no web]

Cita:
Iniciado por RobiBaggio Ver Mensaje
Me cago!!! Estaba terminando de darle formato al mensaje y ya estaba la respuesta

Sí, funciona!!!

Código:
s=thisComp.layer("movimiento").position.speedAtTime(time);
z=s.toFixed(2);
Un usuario más feliz de pasarse por javascript!! Gracias capo Javi!!!

-----
Edito.
Bueno, uso "z" porque ese valor lo ocuparé para otra cosa...
Bienvenido a la programación, RobiBaggio. Me alegra que hayas logrado resolver la duda.
P.S.: La próxima te gano JavierB, hasta la revancha .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 07/07/2008, 11:57
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Controlar el número de decimales [no web]

Robi, me alegro de que te haya sido útil.

David el Grande, no te temo, he tenido tantos choques de mensajes que ya ni los noto

Saludos,
  #11 (permalink)  
Antiguo 07/07/2008, 12:03
Avatar de RobiBaggio
Colaborador
 
Fecha de Ingreso: enero-2005
Ubicación: Mind
Mensajes: 13.554
Antigüedad: 19 años, 3 meses
Puntos: 150
Respuesta: Controlar el número de decimales [no web]

Bueno, así como que Bienvenido, pues, ya tengo algo de tiempo con el AS, pero nunca con el JS, no tengo idea de qué funcione y qué no comparado con el AS...

Pero basicamente lo que no explique la referencia del AE lo vengo a preguntar acá

Unas birras, Yo invito!
  #12 (permalink)  
Antiguo 07/07/2008, 17:24
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Controlar el número de decimales [no web]

Rayos! me perdí toda la acción.
__________________
twitter: @imbuzu
  #13 (permalink)  
Antiguo 07/07/2008, 19:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Controlar el número de decimales [no web]

Cita:
Iniciado por RobiBaggio Ver Mensaje
...Unas birras, Yo invito!
Bueno, ya que me perdí el grueso del tema, pero puse mi granito de arena, voy a aceptar unas birritas

Espero que te animes a participar por estos lares más a menudo.

__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 06:24.