Convertir string a float

Prospero

Dseda
Verificación en dos pasos desactivada
Desde
19 Nov 2006
Mensajes
1.097
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

Delta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios!
Desde
31 May 2016
Mensajes
555
prueba
$dls = str_replace(",", ".", trim($dolar[1]));
 

Prospero

Dseda
Verificación en dos pasos desactivada
Desde
19 Nov 2006
Mensajes
1.097
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

Épsilon
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
18 Nov 2014
Mensajes
968
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

Dseda
Verificación en dos pasos desactivada
Desde
19 Nov 2006
Mensajes
1.097
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
Programador
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
17 Mar 2017
Mensajes
1.778
1596317207232.png

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

Mask7OfDragon

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

jmdoren

Delta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios!
Desde
31 May 2016
Mensajes
555
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>"; ?
 

Arriba