Foros del Web » Programando para Internet » PHP »

Cambiar puntos por coma decimal

Estas en el tema de Cambiar puntos por coma decimal en el foro de PHP en Foros del Web. Salu2. Una manito con un problemilla que me surgio, y que no puedo resolver me trae denuevo por su ayuda... tngo un dato que rescato ...
  #1 (permalink)  
Antiguo 23/08/2011, 12:47
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Cambiar puntos por coma decimal

Salu2. Una manito con un problemilla que me surgio, y que no puedo resolver me trae denuevo por su ayuda...

tngo un dato que rescato de una sap, un numeric de la forma:

12.1
1.1
1
0.7
2.08

que posteriomente guardo en una Mysql.

Resulta que necesito tranformar el punto por una coma decimal.
He intentado con
Código PHP:
<?php
replace
('.',','$var);
?>
me retorna solo la parte entera...

tambien con:

Código PHP:
<?php


$number 
1234.5678;

$format_number number_format($number2',''.');
// retorna 1234  solo la parte entera o antes del punto

?>
ALguna sugerencia por que no puedo kitar el rebelde punto???


De antemanos gracias...

Última edición por n_n; 23/08/2011 a las 12:54
  #2 (permalink)  
Antiguo 23/08/2011, 13:02
Avatar de gusma62  
Fecha de Ingreso: julio-2008
Ubicación: Tepatitlán, Jalisco, Mexico
Mensajes: 167
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Cambiar puntos por coma decimal

Está raro que no funcione con el replace, que tal si primero conviertes a string la variable:

Código PHP:
Ver original
  1. $var = (string)$var;
  2. replace('.',','$var);
  #3 (permalink)  
Antiguo 23/08/2011, 13:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Cambiar puntos por coma decimal

La función replace() ni si quiera existe en PHP.

Yo creo que se refieren a str_replace()
http://php.net/str_replace
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 23/08/2011, 13:08
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Cambiar puntos por coma decimal

Cita:
Iniciado por pateketrueke Ver Mensaje
La función replace() ni si quiera existe en PHP.

Yo creo que se refieren a str_replace()
[url]http://php.net/str_replace[/url]
exactamente...se entiende la idea...


Código PHP:
str_replace(); 
  #5 (permalink)  
Antiguo 23/08/2011, 13:08
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Cambiar puntos por coma decimal

Cita:
Iniciado por gusma62 Ver Mensaje
Está raro que no funcione con el replace, que tal si primero conviertes a string la variable:

Código PHP:
Ver original
  1. $var = (string)$var;
  2. replace('.',','$var);
Testeando... ;)
  #6 (permalink)  
Antiguo 23/08/2011, 13:20
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Cambiar puntos por coma decimal

Tampoco funciona

Código PHP:
$imp =  (string)$f[15];
$imp str_replace('.',',',$imp); 
Sigue retornando solo la parte entera....:(

Alguien plis....? estos problemas chicos siempre me quitan arto tiempo...
  #7 (permalink)  
Antiguo 23/08/2011, 13:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Cambiar puntos por coma decimal

Yo lo que quiero saber es que valor trae $f[15] ?

No entiendo por que dices que no sirve:
Código PHP:
echo str_replace('.'',''2.08'); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 23/08/2011, 13:28
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 4 meses
Puntos: 87
Respuesta: Cambiar puntos por coma decimal

que tal, a mi me funciona de las 2 formas

Código PHP:
Ver original
  1. $var = 1234.5678;
  2. $number = (string)$var;
  3. $format_number = str_replace('.', ',', $number);
  4. echo $format_number;
  5.  
  6. $var = 1234.5678;
  7. $format_number = number_format($var, 4, ',', '');
  8. echo $format_number;

Las 2 retornan 1234,5678. puede que el problema tienes al recibir el dato.

Saludos
  #9 (permalink)  
Antiguo 23/08/2011, 13:45
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Cambiar puntos por coma decimal

Caramba, caramba no encuentro el problema...claramente es en la llegada del dato como bien dicen..., pero no encuentro el problema...

Lo que en resumen hago es, conectarme a la sap mediante Sql server 2008 por ODBC.
consulta sql por :
$linkSqlSrv->Execute('select * from tabla');

a medida que voy obteniendo datos, modifico los que necesito modificar...y luego al insert que los guardara en una mysql...

es extraño, pq tambien recibo un dato RUT (rut chileno), y lo modifico a mi antojo

voy a tratar de encotrar lo que pueda estar funcionando mal...

  #10 (permalink)  
Antiguo 23/08/2011, 13:54
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 7 meses
Puntos: 322
Respuesta: Cambiar puntos por coma decimal

Cof.. Cof.. Leíste ésto?

Cita:
Iniciado por pateketrueke Ver Mensaje
Yo lo que quiero saber es que valor trae $f[15] ?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #11 (permalink)  
Antiguo 23/08/2011, 14:05
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Cambiar puntos por coma decimal

Cita:
Iniciado por Sourcegeek Ver Mensaje
Cof.. Cof.. Leíste ésto?
si lo dije al comienzo...son valores numeric....bueno van mis screen shot de los datos..




lo primero son el tipo de dato...y lo de abajo son como se muestran en el sql server.
cuando los guardo normalmente en la Mysql..se guardan hasta el ultimo numero decimal que no sea cero.

si le hago lo cambios ,str:replace o format_number , se me guarddan solo la parte entera.

:(


esto es lo que hago en la consulta sql:

Código PHP:
$recordSet $linkSqlSrv->Execute('select * from TABLA');

if (!
$recordSet){ 
        print 
$linkSqlSrv->ErrorMsg();
        }else{

        while (!
$recordSet->EOF){
            
            for (
$i=0;$i<21;$i++){
                
$f[$i]=$recordSet->fields[$i];
                        
            if(
$i==15){
            
$imp =  (string)$f[15];
            
//$imp = str_replace('.',',',$imp);
            
$imp number_format($f[15],3,',','.');
            }
//if

                    
}//for


  
$insert="INSERT INTO tABLA () VALUES (......, '$imp');";


    
$recordSet->MoveNext();
}
//While 
f[15] es el valor de la impureza...que se muestra en la imagen
Help!

Última edición por n_n; 23/08/2011 a las 14:17
  #12 (permalink)  
Antiguo 23/08/2011, 14:18
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 4 meses
Puntos: 87
Respuesta: Cambiar puntos por coma decimal

Entonces si insertas el dato tal cual, lo hace bien, pero si reemplazas el punto por coma, solo te guarda la parte entera?

En MySQL, qué tipo de dato tiene la columna en la que guardas estos datos?
  #13 (permalink)  
Antiguo 23/08/2011, 14:27
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Cambiar puntos por coma decimal

Cita:
Iniciado por quike88 Ver Mensaje
Entonces si insertas el dato tal cual, lo hace bien, pero si reemplazas el punto por coma, solo te guarda la parte entera?

En MySQL, qué tipo de dato tiene la columna en la que guardas estos datos?
exactamente...por ej en los datos impureza, sin modificar nada, y como en la imagen, los guarda así
2.68
2.02
3.28
1.4
5.88
5

existen algunos datos que son 0.algo, y cuando modifico algo queda cero, y eso no me sirve...

los datos 3 en mysql son FLOAT
  #14 (permalink)  
Antiguo 23/08/2011, 14:28
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 7 meses
Puntos: 322
Respuesta: Cambiar puntos por coma decimal

Me parece que pateketrueke se refería a que imprimieras $f[15], no que nos mostraras el proceso
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #15 (permalink)  
Antiguo 23/08/2011, 14:33
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Cambiar puntos por coma decimal

Cita:
Iniciado por Sourcegeek Ver Mensaje
Me parece que pateketrueke se refería a que imprimieras $f[15], no que nos mostraras el proceso
el dato $f[15] es impureza tal como aparece en la imagen...



solo que al llegar a la mysql se eliminan los ceros de la izquierda...como yo en php

xdd
  #16 (permalink)  
Antiguo 23/08/2011, 14:37
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 9 meses
Puntos: 77
Respuesta: Cambiar puntos por coma decimal

Y dale... lo que pateketrueke y Sourcegeek preguntan no es como esta el dato en la BD, que es lo que _se supone_ esta en la variable, sino ver lo que tienes _realmente_ en tu variable $f[15] (por ejemplo haciendo un echo de esta)

Como sea, hasta donde se, mysql usa como separador de decimales el punto, no la coma, por lo que necesitas guardarlo con punto si o si, y ya cuando quieras mostrar el dato sacado de la bd mysql haces el reemplazo :|
  #17 (permalink)  
Antiguo 23/08/2011, 14:46
Avatar de n_n
n_n
 
Fecha de Ingreso: noviembre-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Cambiar puntos por coma decimal

Cita:
Iniciado por darkasecas Ver Mensaje
Y dale... lo que pateketrueke y Sourcegeek preguntan no es como esta el dato en la BD, que es lo que _se supone_ esta en la variable, sino ver lo que tienes _realmente_ en tu variable $f[15] (por ejemplo haciendo un echo de esta)

Como sea, hasta donde se, mysql usa como separador de decimales el punto, no la coma, por lo que necesitas guardarlo con punto si o si, y ya cuando quieras mostrar el dato sacado de la bd mysql haces el reemplazo :|
con peras y manzanas a mi porfavor, eso es lo que estaba pasando todo el tiempo, el cambio lo hacia bien, solo que al llegar a la bd volvia a punto...

sorry, por lo bruto...intentare arreglarmelas de alguna forma...

gracias a todos, thanks a lot!
  #18 (permalink)  
Antiguo 23/08/2011, 14:50
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 4 meses
Puntos: 87
Respuesta: Cambiar puntos por coma decimal

Cita:
Iniciado por n_n Ver Mensaje
con peras y manzanas a mi porfavor, eso es lo que estaba pasando todo el tiempo, el cambio lo hacia bien, solo que al llegar a la bd volvia a punto...

sorry, por lo bruto...intentare arreglarmelas de alguna forma...

gracias a todos, thanks a lot!
La mejor solución como dijo darkasecas, es que realices el reemplazo al momento de mostrar los datos.

Saludos.
  #19 (permalink)  
Antiguo 23/08/2011, 14:51
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 7 meses
Puntos: 322
Respuesta: Cambiar puntos por coma decimal

Espera, pretendías insertar los datos con coma? Yo que pensaba que reemplazabas al mostrar ¬¬
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: coma, decimal, mysql, puntos
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 10:46.