Foros del Web » Programando para Internet » Javascript »

poner una coma delante de los dos últimos digitos

Estas en el tema de poner una coma delante de los dos últimos digitos en el foro de Javascript en Foros del Web. Hola a todos, tengo una duda de como hacer lo siguiente: recojo de una bd un número entero y tengo que añadirle una como delante ...
  #1 (permalink)  
Antiguo 09/09/2010, 10:20
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
poner una coma delante de los dos últimos digitos

Hola a todos, tengo una duda de como hacer lo siguiente: recojo de una bd un número entero y tengo que añadirle una como delante de los últimos dos dígitos ¿cómo lo podría hacer?
tengo el siguiente número 1234 y me debe aparecer como 12,34
Muchas gracias
  #2 (permalink)  
Antiguo 09/09/2010, 12:26
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: poner una coma delante de los dos últimos digitos

Código Javascript:
Ver original
  1. function coma(num){
  2.  var n = num.toString();
  3.  var p = n.substring(0, n.length-2);
  4.  var f = n.substring(n.length-2, n.length);
  5.  var t = p + ',' + f;
  6. }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 10/09/2010, 04:27
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

El código me da el siguiente error
"Se esperaba un objeto"
Muchas gracias
  #4 (permalink)  
Antiguo 10/09/2010, 05:20
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

perdonar ya he solucionado el error era problema mio que no especifique el js. Ahora no me da error pero tampoco me muestra el dato ¿A que puede ser debido?.
La llamada al js que he realizado es el siguiente:
Código PHP:
<td class="textoazulg" bgcolor="#F2F2F2" onclick="coma(100)" 
  #5 (permalink)  
Antiguo 10/09/2010, 05:26
 
Fecha de Ingreso: septiembre-2010
Ubicación: Malaga
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

La funcion no devuelve ningun dato.

Deberias poner
return t

¿ No seria mas simple dividir por 100 ?
  #6 (permalink)  
Antiguo 10/09/2010, 05:32
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

nada sigue sin mostrar nada

Código PHP:
function coma(num){
    var 
num.toString();
    var 
n.substring(0n.length-2);
    var 
n.substring(n.length-2n.length);
    var 
',' f;
    return 
t;
    
    } 
  #7 (permalink)  
Antiguo 10/09/2010, 07:04
 
Fecha de Ingreso: septiembre-2010
Ubicación: Malaga
Mensajes: 47
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

Es normal que no muestre nada, no hay ninguna instruccion que lo indique.

Añade un id al td.

En la funcion, quita el return t y pon

document.getElementById('el_id_que_hayas_puesto'). innerHTML = t
  #8 (permalink)  
Antiguo 10/09/2010, 07:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: poner una coma delante de los dos últimos digitos

Hola

Ya que estás trayendolo del un bd, editalo en el servidor
Código PHP:
Ver original
  1. <?php
  2. $num = 1234;
  3. $editado = substr($num, 0, 2). ',' .substr($num, 2,2);
  4. echo $editado;
  5. ?>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 10/09/2010, 07:55
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: poner una coma delante de los dos últimos digitos

Cita:
Iniciado por Oasis8 Ver Mensaje
La funcion no devuelve ningun dato.

Deberias poner
return t

¿ No seria mas simple dividir por 100 ?
Si divides entre 100 te saldrá un punto, y él quiere una coma.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 11/09/2010, 10:26
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

He conseguido hacer que funcione pero no exactamente como quiero yo. Me explico le he creado un botón para que al pulsarlo me muestre el dato con la coma. Pero lo que quisiera es que me lo mostrase en el td nada mas cargar la página, sin necesidad de pulsar ningún botón. ¿Se puede hacer?
Muchas gracias

Código PHP:
function coma(num){ 
    var 
num.toString(); 
    var 
n.substring(0n.length-2); 
    var 
n.substring(n.length-2n.length); 
    var 
',' f
   
document.getElementById('boldStuff').innerHTML t;
     
    } 
Código PHP:
<input type='button' onclick='coma(100)' value='Change Text'/>

    <
table>
        <
tr>
            <
td id='boldStuff' ></td>
        </
tr>
    </
table
  #11 (permalink)  
Antiguo 11/09/2010, 11:01
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: poner una coma delante de los dos últimos digitos

Código Javascript:
Ver original
  1. window.onload = function(){coma(100);}
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #12 (permalink)  
Antiguo 11/09/2010, 12:20
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

Muchas gracias funciona perfectamente, pero ahora me surge otra duda que es como le mando el dato num desde una bd. Me explico como sustituiría el dato 100 por un dato que le llega de la bd (el javascript lo he creado en un archivo externo)
Muchas gracias y perdón por las molestias.
  #13 (permalink)  
Antiguo 11/09/2010, 12:27
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: poner una coma delante de los dos últimos digitos

Hola

Cita:
Iniciado por igonfil Ver Mensaje
Muchas gracias funciona perfectamente, pero ahora me surge otra duda que es como le mando el dato num desde una bd. Me explico como sustituiría el dato 100 por un dato que le llega de la bd (el javascript lo he creado en un archivo externo)
Muchas gracias y perdón por las molestias.
¿Te gusta complicarte la vida?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #14 (permalink)  
Antiguo 11/09/2010, 12:56
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

Cita:
<?php
$num = 1234;
$editado = substr($num, 0, 2). ',' .substr($num, 2,2);
echo $editado;?>
¿Como sería en asp?
Muchas gracias
  #15 (permalink)  
Antiguo 11/09/2010, 13:05
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: poner una coma delante de los dos últimos digitos

Hola

Cita:
Iniciado por igonfil Ver Mensaje
¿Como sería en asp?
Muchas gracias
Tiene narices la cosa. Yo que vengo de ASP, lo hago en PHP por que casi todo el mundo programa en ese lenguaje y doy con uno de los pocos que no lo hacen
Código ASP:
Ver original
  1. Dim num
  2. num = 1234
  3. entero = Left(num, 2)
  4. decimales = Right(num ,2)
  5. Response.Write entero & "," & decimales
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #16 (permalink)  
Antiguo 11/09/2010, 13:29
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

Todo correcto, pero sucede que en el caso de no saber la cantidad de digitos que tenemos como número entero (el número lo quiero recoger de una bd) como lo sería
Muchas gracias por toda la ayuda que me estais ofreciendo
  #17 (permalink)  
Antiguo 11/09/2010, 13:43
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: poner una coma delante de los dos últimos digitos

Hola
Cita:
Iniciado por igonfil Ver Mensaje
Todo correcto, pero sucede que en el caso de no saber la cantidad de digitos que tenemos como número entero (el número lo quiero recoger de una bd) como lo sería
Muchas gracias por toda la ayuda que me estais ofreciendo
Colega, eso se dice desde el principio. Es igual, solo que el segundo valor lo has de sacar con Len()
Código ASP:
Ver original
  1. Dim num
  2. num = 12345678
  3. entero = Left(num, Len(num)-2)
  4. decimales = Right(num ,2)
  5. Response.Write entero & "," & decimales
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #18 (permalink)  
Antiguo 11/09/2010, 13:43
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: poner una coma delante de los dos últimos digitos

Bueno yo no sé nada de ASP, pero bastaría con pasar el número a string, coger el length, y hacer el subbstring. Si me equivoco por favor corregidme.
Saludos (:
PD: Se me adelantó Adler ;)
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Última edición por _cronos2; 11/09/2010 a las 13:45 Razón: Demasiado tarde xD
  #19 (permalink)  
Antiguo 11/09/2010, 13:57
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: poner una coma delante de los dos últimos digitos

Muchisimas gracias, funciona perfectamente es lo que necesitaba
  #20 (permalink)  
Antiguo 11/09/2010, 14:54
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: poner una coma delante de los dos últimos digitos

Hola
Cita:
Iniciado por _cronos2 Ver Mensaje
Bueno yo no sé nada de ASP, pero bastaría con pasar el número a string, coger el length, y hacer el subbstring. Si me equivoco por favor corregidme.
No exactamente, tanto en ASP como en PHP no hace falta convertir en string. Fíjate en ninguno de los dos casos paso el valor como cadena
Cita:
num = 1234
$num = 1234;
y después no los transformo en string. Lo mismo podrías hacer en javascript, solo has de pasar el valor como string
Cita:
<input type='button' onclick="coma('100')" value='Change Text'/>
Después en la función, si no me equivoco, podrías usar substr y substring, revisa esto
Cita:
function coma(num){

var p = num.substr(0, num.length-2);
var f = num.substring(num.length-2);
var t = p + ',' + f;
document.getElementById('boldStuff').innerHTML = t;

}
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #21 (permalink)  
Antiguo 11/09/2010, 22:37
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: poner una coma delante de los dos últimos digitos

si fueras hacerlo en javascript, con expresiones regulares es mucho mas corto el cual resulta en menos consumo de recursos. quizas, lo mismo podria decirse de otros lenguajes. en javascript podria ser asi. solamente tienes que pasar el string completo o el numero. fijate que no le pone coma delante si son solo dos digitos.
Código:
function coma(string){
return string.replace(/(\b\d+?)(\d{2})\b/g, "$1,$2");
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #22 (permalink)  
Antiguo 12/09/2010, 08:26
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: poner una coma delante de los dos últimos digitos

Y ahora si la explicas ya sería de lujo ;)
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #23 (permalink)  
Antiguo 12/09/2010, 12:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: poner una coma delante de los dos últimos digitos

La verdad es que no tengo la buena costumbre de usar expresiones regulares para cosas tan pequeñas, pero si nos fijamos en el proceso interno, se ahorran recursos, así que será una practica que tendré que adoptar
@_cronos2 mírate esto y entenderás la expresión
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #24 (permalink)  
Antiguo 12/09/2010, 13:15
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: poner una coma delante de los dos últimos digitos

Creo que he entendido más o menos cómo funciona la expresión. Busca números al principio del string y deja 2 al final, ¿no? Pero no entiendo lo de "$1,$2", ¿es cómo lo que hace PHP, que puede guardar trozos del string y luego usarlos?
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #25 (permalink)  
Antiguo 12/09/2010, 13:33
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: poner una coma delante de los dos últimos digitos

Hola

Mas o menos es eso. Un poco mas de lectura con respecto a la extracción de grupos
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: coma, digitos, dos, poner
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:07.