Comunidad de diseño web y desarrollo en internet online

Mostrar 2 decimales en numero entero

Citar            
MensajeEscrito el 16 Ene 2010 04:12 pm
Hola, otra consulta que tengo es, como podría mostrar ,00 de un numero entero, es una suma de subtotales, y a veces tiene decimales y otras no, entonces me gustaría mostrar ,00 cuando el resultado sea un numero entero.
He probado multiplicando por 100 y dividiendo por 10000 pero me da NaN.
Saludos!

Por JoseBarna

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Ene 2010 04:44 pm
Primero que nada, si te da NaN es porque estas haciendo las cuentas sobre algo que no es un número. Fuera de eso, si quieres mostrar los 00, deberás escribir una rutina, que trate al Number como un String para agregarle en valor literal las comillas

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 16 Ene 2010 05:35 pm
Gracias!
Me podrías decir como pasar una variable String a una variable Numerica. Las cargo desde un php. Pensaba que con :
Var Numero:Number = Number(VariableString);

Pero no me funciona....

Saludos!

Por JoseBarna

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Ene 2010 06:26 pm
Math.round(tuNumero*100)/100;

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 16 Ene 2010 07:52 pm
Hola!
Gracias, pero no me funciona, seguiré probando. ;)

Por JoseBarna

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Ene 2010 09:53 pm

Zah escribió:

Math.round(tuNumero*100)/100;


Zah!, no le funciona porque Flash elimina los números con decimales ".00" y él necesita mostrarlos. Si tienes 100, él quiere que diga "100.00".

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 17 Ene 2010 09:55 pm
Por cierto para transformarlos solo haz:

Código ActionScript :

var tuNumero:Number = 100;
var tuNumbero_toString:String 
tuNumero = Math.round(tuNumero*100)/100; 
tuNumbero_toString = String(tuNumero);
if(tuNumbero_toString.indexOf(".")== -1){
    trace(tuNumbero_toString+".00");
}else{
    trace(tuNumbero_toString);
}


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 18 Ene 2010 07:57 am
Ostras, muchas gracias Hernan!!!
Exactamente lo que dices, necesito mostrar los 2 decimales que puedan salir, como resultado de la operación matemática, pero en algunos casos se trata de numeros enteros, a los cuales tendría que mostrar ,00 . Ahora pruebo tu código!! Muchas Gracias master!!

Por JoseBarna

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2010 11:03 am
Me funciona, casi....
Cuando hay 2 decimales, bien, normal, como siempre.
Cuando es un entero, BIEN!!!;) Muestra el número entero seguido de .00

EL problema es cuando solo hay 1 decimal, solo muestra ese decimal, y lo suyo sería que mostrase también 2.

Saludos!

Por JoseBarna

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2010 11:14 am
El código que me ha quedado es el siguiente:

Código ActionScript :

function sumaTotal(){
total = Number(total1)+Number(total2)+Number(total3)+Number(total4)+Number(total5)+Number(total6)+Number(total7)+Number(total8)+Number(total9)+Number(total10)+Number(total11)+Number(total12)+Number(total13)+Number(total14)+Number(total15);
var tuNumbero_toString:String  
total = Math.round(total*100)/100;  
tuNumbero_toString = String(total); 
if(tuNumbero_toString.indexOf(".")== -1){ 
    total = (tuNumbero_toString+".00"); 
}else{ 
    total = (tuNumbero_toString+"0");
}
}

De esta manera, el problema es cuando hay 2 decimales, le añade un 0, y queda con 3 dígitos, y tendría que quedar con 2, y funciona bien con enteros y 1 decimal.

Saludos!

Por JoseBarna

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2010 01:59 pm
Agrega luego de detectar que un número tiene "." un if con algo así:

Código ActionScript :

if(tuNumbero_toString.substr(tuNumbero_toString.indexOf(".")).length==1){
      total = (tuNumbero_toString+"0");  
}else{
      total = (tuNumbero_toString+".00");  
}


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 18 Ene 2010 07:02 pm
Hola!!!

Gracias Hernán!!

Lo solucioné de la siguiente manera:

Código ActionScript :

function sumaTotal(){ 
total = Number(total1)+Number(total2)+Number(total3)+Number(total4)+Number(total5)+Number(total6)+Number(total7)+Number(total8)+Number(total9)+Number(total10)+Number(total11)+Number(total12)+Number(total13)+Number(total14)+Number(total15); 
var tuNumbero_toString:String   
total = Math.round(total*100)/100;   
tuNumbero_toString = String(total);  
if(tuNumbero_toString.indexOf(".")== -1){//si no hay decimales  
    total = (tuNumbero_toString+".00");  
}else if(tuNumbero_toString.indexOf(".")== tuNumbero_toString.length -2){//si hay 1 decimal
   total = (tuNumbero_toString+"0");
   }
else{//si hay 2 decimales
   total = (tuNumbero_toString); 
   } 
}


Me ha costado casi todo el dia, pero sin vuestra inestimable ayuda y la de mi compañero de fatigas me hubiera tirado 1 semana... ;)

Muchas gracias ;)

Por JoseBarna

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Oct 2010 08:52 pm
Enserio muchas gracias por tu aportacion me sacaste de un apuro, excelente, jajajaja muchas gracias ya lo dije verdad? xD
Aqui lo dejo solo metiendo el numero sin operaciones a partir de tu codigo, asi ya cuando tengamos los resultados les damos el formatito que diseñaste =) saludos

Código :

function formato(minumero:Number):Number{  
   
   var tuNumero_toString:String    
   retorno = Math.round(minumero*100)/100;//redondeando solo a dos decimales la cantidad    
   tuNumero_toString = String(retorno);   
   if(tuNumero_toString.indexOf(".")== -1){//si no hay decimales   
             retorno = ("$"+tuNumero_toString+".00");   
   }else if(tuNumero_toString.indexOf(".")== tuNumero_toString.length -2){//si hay 1 decimal 
         retorno = ("$"+tuNumero_toString+"0"); 
     } 
   else{//si hay 2 decimales 
         retorno = ("$"+tuNumbero_toString);  
    }
    trace(retorno);
   return retorno;
}

Por sdarks

25 de clabLevel



 

firefox

 

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