Foros del Web » Creando para Internet » Flash y Actionscript »

Redondeo de cifras...

Estas en el tema de Redondeo de cifras... en el foro de Flash y Actionscript en Foros del Web. Saludos!... Tengo un código que me genera una serie de resultados: Cita: onEnterFrame = function () { totaleuro1.text = String(Number(cantidad1.text)*Number(euro.text)); totaldolar1.text = String(Number(cantidad1.text)*Number(dolar.text)); totalpound1.text = ...
  #1 (permalink)  
Antiguo 25/05/2006, 03:58
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 21 años, 3 meses
Puntos: 5
Sonrisa Redondeo de cifras...

Saludos!...

Tengo un código que me genera una serie de resultados:

Cita:
onEnterFrame = function () {
totaleuro1.text = String(Number(cantidad1.text)*Number(euro.text));
totaldolar1.text = String(Number(cantidad1.text)*Number(dolar.text));
totalpound1.text = String(Number(cantidad1.text)*Number(pound.text));
totalyen1.text = String(Number(cantidad1.text)*Number(yen.text));
totaleuro2.text = String(Number(cantidad2.text)*Number(euro.text));
totaldolar2.text = String(Number(cantidad2.text)*Number(dolar.text));
totalpound2.text = String(Number(cantidad2.text)*Number(pound.text));
totalyen2.text = String(Number(cantidad2.text)*Number(yen.text));
};


Estos resultados se dan del tipo nn,n ó nn,nnnnnnnn. Necesitaría que estos valores quedasen sólo con dos decimales.

He visto varios POST en los que se obtiene el redondeo de los decimales multiplicando el resultado por cien, posteriormente pasando la función Math.round() y finalmente dividirla entre cien.

He intentado envolver mis "Textfileds" en esta variable pero me genera muchos errores.

No sé si es necesario crear una especie se "sub-resultado" para sacar los valores a parte y pasarlos por la variable de redondeo... Lo he intentado pero también me da errores.

Poidrían echarme una mano en esto please!...

Gracias!...
__________________
Andrew :P
  #2 (permalink)  
Antiguo 25/05/2006, 04:47
Avatar de Osirapis  
Fecha de Ingreso: abril-2006
Ubicación: Granada - Sevilla. (la Tierra)
Mensajes: 89
Antigüedad: 18 años, 7 meses
Puntos: 0
Quizá como cadena...

Intenta tratar el resultado como cadena, en lugar de como número.

Supongamos que Resultado = "12,687654". Entonces

Resultado = Resultado.substr(0, Resultado.indexOf (",") + 2);
trace(Resultado);

Nos daría: "12,68".


Nota1: No sé si substr trabaja con base en 0 ó en 1, prueba y mira qué pasa.


Suerte (de la buena).
__________________
Solo hay 10 tipos de personas: los que saben binario y los que no. ; )P
  #3 (permalink)  
Antiguo 25/05/2006, 04:57
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 21 años, 3 meses
Puntos: 5
Osirapis... Muchas gracias por tu respuesta...

El problema es que me ha costado mucho conducir esta formula como numérica y no textual porque los valores que se van desprendiendo hasta llegar a las formulas que ves son de archivos planos que traigo hasta la animación.

Cómo puedo hacerlo, pues, conservando el formato numérico?
__________________
Andrew :P
  #4 (permalink)  
Antiguo 25/05/2006, 06:03
Avatar de Osirapis  
Fecha de Ingreso: abril-2006
Ubicación: Granada - Sevilla. (la Tierra)
Mensajes: 89
Antigüedad: 18 años, 7 meses
Puntos: 0
Trátalos como números

Hola de nuevo.

A ver, esos datos, de hecho, son cadenas de texto.

Si te das cuenta, los estás almacenando en la propiedad TEXT, no están guardados en un var ntotaleuro1:Number (variable numérica de verdad).

De hecho, podrías "pasar a mayúsculas" el total y luego sumarle 2:

totaleuro1.text = totaleuro1.toUpperString() + 2;

De todas maneras pruebalo a ver si te rula, otra cosa no se me ocurre ahora mismo.

Un saludo.
__________________
Solo hay 10 tipos de personas: los que saben binario y los que no. ; )P
  #5 (permalink)  
Antiguo 25/05/2006, 08:08
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 21 años, 3 meses
Puntos: 5
Sonrisa

Osirapis... Muchas gracias por tu consejo ... No obstante un amigo ha preguntado lo mismo en otro foro y me proporcionó la respuesta... Era más fácil de lo que yo me esperaba...

La opción entera se puede trabajar directamente sin excluír el String:

MiTextFiled3.text = String(Math.round(Number(MiTextField1.text)*Number(MiTextField2.text)*100)/100);

Funciona perfectamente y no es necesario darle tantas vueltas al redondeo de una cifra como lo he visto en otros POST.

Cordiales saludos!...

__________________
Andrew :P
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 22:30.