Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Convirtiendo String a Float arroja 0!

Estas en el tema de Convirtiendo String a Float arroja 0! en el foro de PHP en Foros del Web. Muy buenas foreros, abro un nuevo tema (ya estoy pesado) para haceros una nueva consulta. Quiero aclarar que antes de realizar cualquier consulta en el ...
  #1 (permalink)  
Antiguo 16/04/2014, 00:18
Avatar de mati22  
Fecha de Ingreso: abril-2014
Mensajes: 10
Antigüedad: 10 años
Puntos: 0
Pregunta Convirtiendo String a Float arroja 0!

Muy buenas foreros, abro un nuevo tema (ya estoy pesado) para haceros una nueva consulta.

Quiero aclarar que antes de realizar cualquier consulta en el foro, pruebo absolutamente TODO lo que se me ocurre, aprendo o veo en ejemplos con problemas similares; No obstante, PHP me esta dando grandes dolores de cabeza ya que cualquier cosa que pretendo hacer, por H o por B me arroja un error

Ayer realice una consulta similar en el foro pero por error lo marque como solucionado al tema.


Mi problema es el siguiente:

Necesito sumar un string (que contiene un valor numerico como 1,4939) y un float. Lo lógico (imagino) sería convertir el string a float. El problema es que, al convertir el string a float me arroja como resultado 0.
El código es el siguiente

Código PHP:
<?php
        
function between($beg$end$str) {
            
$a explode($beg$str2);
            
$b explode($end$a[1]);
            return 
$beg $b[0] . $end;}
    
$url file_get_contents ("https://es.finance.yahoo.com/q?s=EURUSD=X");
            
$cotizacion between('<span id="yfs_l10_eurusd=x">''</span>'$url); 
                echo (
"Cotizacion con coma es: $cotizacion");
        
        
$cotizacionR str_replace(",",".",$cotizacion);
            echo (
"CotizacionR es: $cotizacionR");
        
        
$flt = (float)$cotizacionR;
            echo (
"FLOTANTE ES $flt");
        
//Arroja 0 como resultado!! :@
        
?>
Se os ocurre por que!?
  #2 (permalink)  
Antiguo 16/04/2014, 11:18
 
Fecha de Ingreso: abril-2014
Mensajes: 9
Antigüedad: 10 años
Puntos: 0
Respuesta: Convirtiendo String a Float arroja 0!

Tengo el mismo problema ...
además de eso me pasa esto ..
http://www.forosdelweb.com/f18/problema-php-oracle-no-recuperar-numeros-con-decimales-1097133/

Si encuentras solución me avisa
Gracias
  #3 (permalink)  
Antiguo 16/04/2014, 11:27
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: Convirtiendo String a Float arroja 0!

Código PHP:
Ver original
  1. $foo = (float)'1.123123';
  2. $foo+=1;
  3. var_dump($foo);

El casteo funciona perfectamente.

Intenta hacer un var_dump antes del str_replace, para ver si tu cadena es correcta y no contiene espacios u otros caracteres no deseados.

Código PHP:
Ver original
  1. var_dump($cotizacion);
  2.  $cotizacionR = str_replace(",",".",$cotizacion);

Saludos
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #4 (permalink)  
Antiguo 16/04/2014, 12:16
 
Fecha de Ingreso: abril-2014
Mensajes: 9
Antigüedad: 10 años
Puntos: 0
Pregunta Respuesta: Convirtiendo String a Float arroja 0!

h2swider , porqué hay que sumarle 1 ??
  #5 (permalink)  
Antiguo 16/04/2014, 12:39
 
Fecha de Ingreso: abril-2014
Mensajes: 9
Antigüedad: 10 años
Puntos: 0
Respuesta: Convirtiendo String a Float arroja 0!

Yo obtengo el valor $fila[6], el cual es un número en la bd = 0.24 , lo extraño es que se me muestra como ,24 ,lo que según dice gettype es un string, como hago para que se quede como number??

Además de eso también trato de convertirlo a float y también me arroja 0 !

Este es mi código


Código PHP:
 echo "\$fila[6]==$fila[6]; tipo es " gettype ($fila[6]) . "<br />\n";
 
 
$cadena=$fila[6];
 echo
"cadena..$cadena <br />";
 
 echo 
"\$cadena==$cadena; tipo es " gettype ($cadena) . "<br />\n";
 
 
$foo = (float)$fila[6];
 
$foo+=1;
 echo
"foo..$foo <br />";
 
 echo 
"\$foo==$foo; tipo es " gettype ($foo) . "<br />\n";
 
  
$numero_cuotas_n=var_dump($foo);
  echo
"numero_cuotas_n.. $numero_cuotas_n <br />";
  
echo
"<input type='text' name='numero_cuotas' id='numero_cuotas'  value='$numero_cuotas_n' disabled/>"
Las respuestas que obtengo son:

$fila[6]==,24; tipo es string
cadena..,24
$cadena==,24; tipo es string
foo..1
$foo==1; tipo es double

float 1

numero_cuotas_n..
  #6 (permalink)  
Antiguo 16/04/2014, 12:41
 
Fecha de Ingreso: abril-2014
Mensajes: 9
Antigüedad: 10 años
Puntos: 0
Respuesta: Convirtiendo String a Float arroja 0!

en este caso el float me dió =1 por utilizar

Código PHP:
$foo+=1
que todavía no se para que sirve

Etiquetas: float, string
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 02:21.