Convertir string a float

Prospero Seguir

Eta
Verificación en dos pasos desactivada
Desde
19 Nov 2006
Mensajes
1.266
Hola amigos, resulta que traigo un texto externo. pero quiero tratarlo dentro de mi script y trate de convertirlo en numero trabajable y no hay caso probe todo lo existente y no me lo toma como numero que puede ser?


// >> viene externo $dolar[1] = " 76,2500 " asi viene....

Esto es lo que se muestra cuando ejecuto:

HTML:
<html><head></head><body>76.2500<br>bool(false)
<br>La Suma es: 2.1</body></html>

esto es el tratamiento que le doy:

PHP:
echo $dls = str_replace(",", ".", $dolar[1]);
echo '<br>';

var_dump(is_float($dls));
$numero = 2.1;

$suma = floatval($dls) + $numero;

echo "La Suma es: " .$suma;

Probe ahora....

PHP:
$var5 = $dolar[1];

     if( settype($var5, "float") == true ) {
        if( is_float($var5) == true )
            echo "\$var5 es ahora float y su valor es [".$var5."].<br/>";
    }

y me devuelve

HTML:
$var5 es ahora float y su valor es [0].

No entiendo porque motivo cuando le hago conversion de string a float me lo deja en cero.
 
Última edición:

jmdoren

Épsilon
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
31 May 2016
Mensajes
787
prueba
$dls = str_replace(",", ".", trim($dolar[1]));
 

Prospero

Eta
Verificación en dos pasos desactivada
Desde
19 Nov 2006
Mensajes
1.266
no no me lo sigue tomando en cero osea imprime tu codigo con el punto y todo pero cuando hago operacion por ejemplo sumarle un dos solo muestra un 2 no suma lo toma en cero, o cuando le pongo para mostrar solo 2 decimales echo $ave= round($dls, 2); tambien me lo muestra en cero.
prueba
$dls = str_replace(",", ".", trim($dolar[1]));
 

Programarte

Dseda
Programador
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
18 Nov 2014
Mensajes
1.092
Pon todo tu código completo actual que no funciona para tratar de encontrar el problema, yo hice un ejemplo con

PHP:
$dato=" 76,500 ";
$dato=str_replace(",",".",trim($dato));
$num=floatval($dato);
echo $num;

y funciona bien. Aunque claro que como tu dato viene de fuera puede ser que ahí esté el problema.
 

Prospero

Eta
Verificación en dos pasos desactivada
Desde
19 Nov 2006
Mensajes
1.266
Pon todo tu código completo actual que no funciona para tratar de encontrar el problema, yo hice un ejemplo con

PHP:
$dato=" 76,500 ";
$dato=str_replace(",",".",trim($dato));
$num=floatval($dato);
echo $num;

y funciona bien. Aunque claro que como tu dato viene de fuera puede ser que ahí esté el problema.
Insertar CODE, HTML o PHP:
<?php
$dato = $dolar[1];
$dato=str_replace(",",".",trim($dato));
$num=floatval($dato);
echo $num;


?>


el codigo completo: y resultado da 0
 
Última edición:

Mask7OfDragon

VIP
Zeta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
17 Mar 2017
Mensajes
1.993
1596317207232.png


PHP:
$num = (float) floatval($dato);
/** Versiones superiores a PHP 7.4 **/
 

Mask7OfDragon

VIP
Zeta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
17 Mar 2017
Mensajes
1.993
Tambien podrias usar format number de php para convertirlo mas facil.
 

jmdoren

Épsilon
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
31 May 2016
Mensajes
787
Insertar CODE, HTML o PHP:
<?php
$dato = $dolar[1];
$dato=str_replace(",",".",trim($dato));
$num=floatval($dato);
echo $num;


?>


el codigo completo: y resultado da 0
¿y dónde cargas $dolar[1]?
¿qué pasa si en la primera línea haces echo "[".$dato[1]."]<br>"; ?
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba