Comunidad de diseño web y desarrollo en internet online

redondear decimales

Citar            
MensajeEscrito el 17 Feb 2005 06:05 pm
hola tios como puedo redondear un número de x decimales en uno de 2 decimales. ejemplo:

1.23432663 ---> 1.23
2.3368855 ----> 2.34

Por sith

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2005 06:45 pm
veamos no conozco la funcion q hace esopero seria algo asi
primero sacamos la cantidad a reacorrer
despues realizamos una busqueda del "." al encontrarlo le doy la posicion mas 2 decimales

Código :

num = "125.4542321"
cantidad = num.length
trace(cantidad add " " add substring(num,2,1)); 
for (I=1;I<=cantidad;I++) {
   if (substring(num,I,1)==".") {
         fin = I + 2;
      } else {
         fin   = I
   }
}
trace(substring(num,1,fin));


no esta 100% probado

Saludos :D

Por flasher

Invitado



 

firefox
Citar            
MensajeEscrito el 17 Feb 2005 07:23 pm
:shock:

Código :

var x = 17.5;
trace( Math.floor(x) );

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh
Citar            
MensajeEscrito el 17 Feb 2005 07:38 pm
para qué tan complicado? precisamente estoy haciendo un trabajo utilizando esto y es fácil
decimal = 1.239783
trace(Math.round(decimal*100)/100)
sencillito, no?

Por fael

BOFH

2443 de clabLevel

3 tutoriales
2 articulos

 

firefox
Citar            
MensajeEscrito el 17 Feb 2005 07:41 pm
:P si pes por lo que vi solo funciona si le pones como string y no como int entons seria asi

Código :

var num:String = textoo.text;
cantidad = num.length
for (I=1;I<=cantidad;I++) {
   if (substring(num,I,1)==".") {
         fin = I + 2;
         break;
      } else {
         fin   = I
   }
}
trace(Number(substring(num,1,fin)));

detallitos, detallidos...

Saludox :cc:

Por flasher

Invitado



 



Ultima edición por flasher el 17 Feb 2005 07:53 pm, editado 1 vez

firefox
Citar            
MensajeEscrito el 17 Feb 2005 07:46 pm
Clap Clap Clap

muy buena fael
ni por aqui esa forma un poco de matematicas no estaria mal, como use ese codigo para substraer palabras encontrano el espacio en blanco...

weno Clap Clap :D me quito el sombrero

Por flasher

Invitado



 

firefox
Citar            
MensajeEscrito el 19 Feb 2005 10:45 am
muchas gracias ya mis resultados asustan menos

Por sith

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2006 02:30 am
porq pasa esto ???

decimal = 1.239783;
redondeado = Math.round(decimal*100)/100;
xxx._alpha = redondeado;
trace(redondeado)// 1.24 :)
trace(xxx._alpha)// 1.171875 :shock:

gracias.

Por Acidbjazz

716 de clabLevel



Genero:Masculino  

Lima - Perú

msie
Citar            
MensajeEscrito el 12 May 2006 04:33 am
El alpha de un MC, no tiene sentido que sea en decimales, el ojo humano no notará la diferencia. El set del _alpha debe tener un procedimiento que altera esos decimales. :wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 12 May 2006 08:06 am
No es exactamente así Dano. Es mas simple:
Alpha es una propiedad porcentual ( de 0 a 100 en decimal) de un valor 0x00 a 0xFF ( de 0 a 255 en decimal) luego la relación será ( vista en decimal): 256/100
El valor que presenta el trace es el valor decimal de alpha. Solo hay que pasarlo a hexadecimal y tendremos el valor real del alpha.
En el caso anterior : 1.171875 *256/100 = 3 ( 3 (entero) es el valor "real" de alpha en ese supuesto (0x03) y considerado entre 0 y 255)
y ese valor decimal presentado 1.171875 es en valor decimal más próximo al 1.24 que da un entero para hexadecimales).

Explicaría el desplazamiento de bits en código máquina, pero no creo que tengamos que meternos en profundidades asi que dicho de otro modo:
Es simplemente la presentación decimal de un redondeo en hexadecimal


^^

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox
Citar            
MensajeEscrito el 20 May 2006 02:48 am
Interesante Teseo.
Precisamente en el set de alpha me refiero a eso precisamente:

Código :

class MovieClip{
.
.
public function set _alpha(Value:Integer){
   this.__alpha=convertToSomeNecesary(Value);
.
.
}


Pero insisto, no tiene sentido(para mí) cambiar un _alpha de 98.7 a 98.6.
Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 20 May 2006 11:26 am

Código :

function decimales(num:Number, dec:Number):Number {
   var pot:Number = Math.pow(10, dec);
   var ntemp:Number = num*pot;
   var retNum:Number = Math.round(ntemp);
   retNum /= pot;
   return retNum;
}

:?
Esta función aparecía en un post de por aquí...

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 21 May 2006 04:49 pm
Math.round()
Disponibilidad
Flash Player 5. En Flash Player 4, los métodos y las propiedades de la clase Math se emulan utilizando aproximaciones y es posible que no sean tan precisos como las funciones matemáticas no emuladas admitidas por Flash Player 5.

Sintaxis
Math.round(x)

Parámetros
x Un número.

Valor devuelto
Un número.

Descripción
Método; redondea el valor del parámetro x hacia arriba o hacia abajo al número entero más cercano y devuelve el valor.

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 16 Jul 2008 07:11 am
Hola, he estado leyendo sobre este tema por que yo también necesitaba una solución al respecto, al final se me ha ocurrido esto, espero q os sirva:

Código :

//------------------------- Decimales que queremos
var decimales_deseados:int=2;
//------------------------- Valor original
var original:Number=14.56874687654;
//----------------- Proceso
var rdn:Array=String(original).split(".");
var juntar_cadena:String=rdn[0]+"."+rdn[1].substr(0,decimales_deseados);
//------------------------- Resultado
var redondeado:Number=Number(juntar_cadena);

Por Dj_Pekao

10 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 16 Jul 2008 08:26 am
Lo más sencillo ya lo postearon, es multiplicar por la cantidad de decimales, redondear y despues dividir por la misma cantidad de decimales.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 16 Jul 2008 02:16 pm
¿acaso no alcanzaron a leer lo que postie hace 2 años?

Código :

enteroLibreDeDecimales= Math.round(miVar);

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 17 Jul 2008 08:10 am
Si lo que eso no es de lo que se trata este post, con Math.round siempre redondeará a un número entero, lo que leiste en la ayuda de que redondea hacia arriba o hacia abajo se refiere a que 1,5 será redondeado a 2 y 1,2 será redondeado a 1, lo que se buscaba era redondear (por ejemplo a 3 decimales):

1,34567 ----> 1,346
1,894678 ---> 1,895
1,8654309 --> 1,865

y se logra Math.round(numero*10*decimales)/(10*decimales)

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 26 Jun 2011 05:06 pm
hola a todos. Nesecito ayuda con un scrip ya q soy nuevo en esto de flash y me esta volviendo loco. Tengo un carrusel d 5 imagenes, cada imagen funciona como boton pero tengo solo un boton el cual me ejecuta otra ventana d mi sitio. El tema es q quiero q cada imagen con el mismo boton carguen el mc correspondiente a cada imagen. Nose si me explico bien. Lo q he utilizado es loadMovie y math.round. Les dejo el codigo q he utilizado :

var carrusel:Number = Math.round(Math.random()*4);
trace(carrusel);
loadMovie("banners/anima"+carrusel+".swf", "clip_neg");

al boton le aplico este otro codigo :

on (release) {
carrusel = Math.round(Math.random()*4);
trace(carrusel);
loadMovie("banners/anima"+carrusel+".swf", "clip_neg");
}

tengo 5 swf dentro d la carpeta " banners " : anima0, anima1, anima2, anima3 y anima4.
Lo q nesecito es q cuando se apriete la foto correspondiente al mc anima2, por ej. se ejecute el mc anima2 y no cualquier otro. Espero haber sido lo bastante claro y desde ya mil gracias.

Saludos cordiales.

Por marckus74

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Jun 2011 10:03 am
marckus75, te aconsejo abrir un nuevo tema con tu problema y detalla un poco mas porque sinceramente es un poco confuso lo que has escrito.

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 27 Jun 2011 07:08 pm
Gracias Acreonte por el aporte, voy a intentar abrir el tema. Nuevamente mil gracias

Por marckus74

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Ene 2012 04:18 am
No complicaros tanto:

var xValor : Number = 3.25847;
trace(xValor.toFixed(2)); // 3.26

Hay que leer los manuales

Por pandi00

0 de clabLevel



Genero:Masculino  

Programador

chrome
Citar            
MensajeEscrito el 17 Ene 2012 08:57 pm

pandi00 escribió:

No complicaros tanto:

var xValor : Number = 3.25847;
trace(xValor.toFixed(2)); // 3.26

Hay que leer los manuales


Y tu deberías haber visto que esto es para AS1 y AS2 ... y la fecha del post.
toFixed no existe en AS2. Hay que leerlo todo...

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

chrome
Citar            
MensajeEscrito el 19 Ene 2012 02:54 pm
Más sencillo aún, usar Greensock Tweenlite, una línea y listo

Por ramonjosegn

27 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.