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

simulador de credito

Estas en el tema de simulador de credito en el foro de Flash y Actionscript en Foros del Web. Hola otra vez, espero que me podais ayudar. Es envio un código que no funciona. Claro, que no se mucho Actionscript y esta hecho de ...
  #1 (permalink)  
Antiguo 03/07/2007, 04:43
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 0
simulador de credito

Hola otra vez,
espero que me podais ayudar.
Es envio un código que no funciona. Claro, que no se mucho Actionscript y esta hecho de cosas de aqui y de allá.
Creo que aunque este mal se puede ver lo que quiero hacer.
Son tres campos de texto:
idcampo1= campo de introducción de texto ( en este caso números).
idcampo2= campo de introducción de texto (en este caso números).
idresultado=campo dinámico. Donde se supone que ha de salir el resultado de la función.

Código:
botonoperacion.onRelease=function(){
	var cuotaFP;
	cuotaFP="LaoMath.round((Number(idcampo1.text)*0.7)/100),2)";
	if Number(idcampo2.text)>=0|<=5;
	idresultado.text=420;
	if Number(idcampo2.text)>=6|<=9;
	idresultado.text=cuotaFP*1;
Gracias por la ayuda. saludos

Última edición por Nornor; 03/07/2007 a las 04:56
  #2 (permalink)  
Antiguo 03/07/2007, 05:09
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: simulador de credito

¿LaoMath? No conozco eso. De todos modos, no le veo sentido a las comillas cuando le asignas valor a la variable cuotaFP. Las comillas dan tipo cadena de texto a una variable.

Saludos!
  #3 (permalink)  
Antiguo 03/07/2007, 05:17
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: simulador de credito

Gracias por contestar.
LaoMath lo copie de internet.
Veo que lo debí de entender mal. Lo que quería era realizar el redondeo en dos cifras del número que se pusiera en idcampo1.
Quito las comillas pero sigo igual.
Saludos
  #4 (permalink)  
Antiguo 03/07/2007, 05:24
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: simulador de credito

No encuentro LaoMath en la ayuda de flash. Comprueba que has escrito bien la palabra o que no sea una función o clase creada por alguien (pudiera ser que no fuera una función o clase nativa de flash).

De todos modos, ¿lo que quieres es redondear a dos cifras los decimales de un número? En ese caso comprendería que alguien hubiera creado una clase o función para ello.

Saludos!
  #5 (permalink)  
Antiguo 03/07/2007, 05:53
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: simulador de credito

Tienes razón es una clase, creo. Este es el link de donde lo saque
http://blog.innocuo.com/archive/2006...eros-parte-ii/
De todas formas, quitando lo del redondeo del numero, el código ni siquiera me permite sacar un resultado en id.resultado.
El código que tengo ahora es:

botonoperacion.onRelease=function(){
var cuotaFP:Number
cuotaFP:Number=Math.round(((Number(idcampo1.text)* 0.7)/100),2);
if (Number(idcampo2.text)>=0|<=5)
{idresultado.text=(420);}
if (Number(idcampo2.text)>=6|<=9)
{idresultado.text=cuotaFP:Number*1;}
}

Un saludo
  #6 (permalink)  
Antiguo 03/07/2007, 07:15
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: simulador de credito

Prueba así:
Código:
botonoperacion.onRelease=function(){
   var cuotaFP:Number = Math.round((Number(idcampo1.text)* 0.7)/100);
   if (Number(idcampo2.text)>=0 || Number(idcampo2.text)<=5) {
      _root.idresultado.text=(420);
   } else if (Number(idcampo2.text)>=6 || Number(idcampo2.text)<=9) {
      _root.idresultado.text=cuotaFP;
   }
}
  #7 (permalink)  
Antiguo 03/07/2007, 07:47
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: simulador de credito

Gracias por tu respuesta Mahalo.
La verdad es que el resultado de tu código es bueno pero si por ejemplo pongo en el idcampo2 un 3 el resultado es idresultado es un 0 y tendría que salir ( para números del 0 al 5, incluidos) el valor de 420.
No se porque lo hace así le seguiré dando vueltas. Gracias de nuevo y un saludo.
  #8 (permalink)  
Antiguo 03/07/2007, 08:02
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: simulador de credito

Perdón! Me despisté. En las dos cláusulas condicionales no toca || sino &&.
  #9 (permalink)  
Antiguo 04/07/2007, 01:52
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 0
Sonrisa Re: simulador de credito

Gracias Mahalo...y una pregunta ,
el Math.round ¿ que hace exactamente? yo lo que necesito es que queden los dos últimos decimales y que se redondee la cifra en base a el tercer decimal.
Realizo las operaciones con algunos ejemplos y no acaba de encajar, para valores mayores de 5.
El código lo llevo de momento así:

Código:
botonoperacion.onRelease=function(){
	
    var cuotaFP:Number=Math.round((Number(idcampo1.text)*0.7)/100);
	if (Number(idcampo2.text)>=0&&Number(idcampo2.text)<=5)
	{idresultado.text=(420);}
	if (Number(idcampo2.text)>=6&&Number(idcampo2.text)<=9)
    {idresultado.text=cuotaFP*1;}
	if (Number(idcampo2.text)>=10&&Number(idcampo2.text)<=49)
    {idresultado.text=cuotaFP*0.75;}
	if (Number(idcampo2.text)>=50&&Number(idcampo2.text)<=249)
    {idresultado.text=cuotaFP*0.6;}
	if (Number(idcampo2.text)>249)
    {idresultado.text=cuotaFP*0.5;}
	if (idresultado.text<240)
	{idresultado.text=420;}
}
el código final significa que el idresultado no puede sere nunca menor de 420, si el resultado es menor.
Un saludo
  #10 (permalink)  
Antiguo 04/07/2007, 02:08
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: simulador de credito

Math.round redondea por aproximación. Es decir:

2.7=>3
2.3=>2

Para quedarte con dos decimales debes crearte una función porque, que yo sepa, flash no incluye ninguna que realice esta operación.
Imagino que la función debe convertir el número a cadena de texto y separar los decimales para poder redondearlos.

1.234567 => 234567 => 23.4567 => Math.round(23.4567)=23 => 1.23

Esta serái una posible sucesión, así a bote pronto.
Saludos!
  #11 (permalink)  
Antiguo 04/07/2007, 02:17
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: simulador de credito

Garcias Mahalo, has sido de gran ayuda.
Me pondré ahora a la tarea del redondeo de decimales.
Un saludo
  #12 (permalink)  
Antiguo 04/07/2007, 03:51
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 0
Sonrisa Re: simulador de credito

He visto este código en internet para el redondeo y por si solo funciona:

Código:
function redondear(n:Number, decimales:Number):Number {
   var k:Number = Math.pow(10, decimales);
   return Math.round(n*k)/k;
}
trace(redondear(1056.663, 2));
Cuando lo intento poner en mi código no funciona:

Código:
botonoperacion.onRelease=function(){
    var decimales:Number
    var k:Number = Math.pow(10, decimales);
 	var cuotaFP:Number=Math.round(((Number(idcampo1.text)*0.7)/100)*k)/k;
	if (Number(idcampo2.text)>=0&&Number(idcampo2.text)<=5)
	{idresultado.text=(420);}
	if (Number(idcampo2.text)>=6&&Number(idcampo2.text)<=9)
    {idresultado.text=cuotaFP*1;}
	if (Number(idcampo2.text)>=10&&Number(idcampo2.text)<=49)
    {idresultado.text=cuotaFP*0.75;}
	if (Number(idcampo2.text)>=50&&Number(idcampo2.text)<=249)
    {idresultado.text=cuotaFP*0.6;}
	if (Number(idcampo2.text)>249)
    {idresultado.text=cuotaFP*0.5;}
	if (idresultado.text<420)
	{idresultado.text=420;}
}
¿En que puedo fallar?
gracias

Última edición por Nornor; 04/07/2007 a las 03:53 Razón: equivocación en el texto: K por k
  #13 (permalink)  
Antiguo 04/07/2007, 04:58
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: simulador de credito

Pues fallan las rutas. Y yo definiría la función redondear por separado y la aplicaría al resultado final. Así:
Código:
function redondear(n:Number, decimales:Number):Number {
	var k:Number = Math.pow(10, decimales);
	return Math.round(n*k)/k;
}
botonoperacion.onRelease = function() {
	var cuotaFP:Number = (Number(_root.idcampo1.text)*0.7)/100;
	if (_root.idcampo2.text>=0 && _root.idcampo2.text<=5) {
		_root.idresultado.text = 420;
	}
	if (_root.idcampo2.text>=6 && _root.idcampo2.text<=9) {
		_root.idresultado.text = redondear(cuotaFP*1, 2);
	}
	if (_root.idcampo2.text>=10 && _root.idcampo2.text<=49) {
		_root.idresultado.text = redondear(cuotaFP*0.75, 2);
	}
	if (_root.idcampo2.text>=50 && _root.idcampo2.text<=249) {
		_root.idresultado.text = redondear(cuotaFP*0.6, 2);
	}
	if (_root.idcampo2.text>249) {
		_root.idresultado.text = redondear(cuotaFP*0.5, 2);
	}
	if (_root.idresultado.text<420) {
		_root.idresultado.text = 420;
	}
};
A ver si es la definitiva...
  #14 (permalink)  
Antiguo 04/07/2007, 04:59
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: simulador de credito

Por cierto, muy buena función. La tendré en cuenta.
  #15 (permalink)  
Antiguo 04/07/2007, 05:57
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 10 años, 6 meses
Puntos: 0
Sonrisa Re: simulador de credito

!funciona fenomenal!
Gracias por tu tiempo Mahalo.
Sin tu ayuda, y la de internet, este simulador de crédito no sería tal.
Un saludo
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 01:13.