Converter string para float

  • Autor Autor Prospero
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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 edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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.
Inserir CODE, HTML ou PHP:
<?php
$dato = $dolar[1];
$dato=str_replace(",",".",trim($dato));
$num=floatval($dato);
echo $num;


?>


el codigo completo: y resultado da 0
 
Última edição:
1596317207232.webp


PHP:
$num = (float) floatval($dato);
/** Versiones superiores a PHP 7.4 **/
 
Tambien podrias usar format number de php para convertirlo mas facil.
 
Inserir CODE, HTML ou 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>"; ?
 
Voltar
Topo