Convertir string a float

  • Autor Autor Prospero
  • Fecha de inicio Fecha de inicio
Prospero

Prospero

Eta
Verificación en dos pasos activada
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:
prueba
$dls = str_replace(",", ".", trim($dolar[1]));
 
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]));
 
Alguien mas por ahi???
 
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.
 
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:
1596317207232.webp


PHP:
$num = (float) floatval($dato);
/** Versiones superiores a PHP 7.4 **/
 
Tambien podrias usar format number de php para convertirlo mas facil.
 
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>"; ?
 
Atrás
Arriba