image
Inicio » Foros » JavaScript

JavaScript

convertir a cadena de caracteres

Volver al foro | Responder | Añadir nuevo tema


De: victoria
Fecha: 31/10/2006
Mensaje:

como hago mostrar el resultado de un promedio pero como cadena de caracteres, parq q cuando sea 5.2 (numerico) me muestre 5.20.

Gcs.




Quizás le interese
De: jbosch(vosk)
Util para: 1 personas

Fecha: 02/11/2006
Mensaje:

a que te refieres? a transformar un numero a un string? o a formatear el numero de forma que tenga una longitud determinada? dejame plantear un ejemplo de partida:

<script>
var n=new Number(26/5);
var s=new String(n);
alert(n+" "+s);
</script>

ahora en 's' hay la cadena "5.2". esto solucionaría la primera pregunta. supongamos que quieres formatear 's' para que tenga una longitud de dos decimales: si su longitud es menor solo has de añadir 0 al final, si por contra su longitud es mayor has de seccionar la string. supongo que habrá otras formas de hacerlo, esta es la que se me ocurre: partimos del ejemplo anterior, en el que tengo una string con "5.2". lo primero que voy a hacer (para estandarizar el metodo) es usar como norma arbitraria que solo formatearé los valores de coma flotante. para diferenciarlos de los enteros buscaré la posición de la coma flotante, mediante

c=s.indexOf('.');

si 'c' es menor que 0 significará que es un entero, si es mayor o igual que 0 (acepto el caso de valores tales como .2 en vez de 0.2) formateré la string. sabré si debo añadir 0 al final cuando

if(((s.length)-(c+1))<2)
o
longitud total-posicion decimales < longitud decimales

donde '2' es el numero de decimales; observa la coreccion de 'c+1' necesaria: 'c' indica la posicion de la coma, pero ahora estoy trabajando con los decimales, es decir una posicion por delante de la coma. ademas sabré si la string tiene una longitud mayor y debo derortarla cuando

if(((s.length)-(c+1))>2)
o
longitud total - posicion decimales > longitud decimales

donde '2' tambien ahora es el numero de decimales (en este caso limitante). cuando la lognitud total menos la posicion de inicio de los decimales sea igual al numero de decimales no será necesario formatear. para el primer caso (añadir 0)

var t=s.length-c;
do {
s+='0';
t++;
} while(t<2);

o un bucle equivalente. y para el segundo caso (cortar la string) simplemente

s=s.substring(0,c+2);

ahora ya tengo 's' formateada a '2' decimales. aplicado al primer ejemplo, la cosa quedaria de forma parecida a

<script>
var n,s,c,t,L;
L=2;
for(var q=1;q<5;++q)
 {
 for(var w=1;w<5;++w)
  {
  n=new Number(q/w);
  s=new String(n);
  c=s.indexOf('.');
  if(c>=0)
   {
   c+=1;
   if(((s.length)-c)>L)
    {
    s=s.substring(0,c+L);
    }
   else if(((s.length)-c)<L)
    {
    t=s.length-c;
    do {
     s+='0';
     t++;
     } while(t<L);
    }
   }
  document.write(n+" -- "+s+"<br>");
  delete n;
  delete s;
  }
 }
</script>

donde 'L' es el numero de decimales que quiero usar. como ves es mas fácil de lo que parecia. prueba a hacerlo sin copiar/pegar, que no hay nada de complejo.

jbosch(vosk)





Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.