PHP - Bring result with select decimals in the Firebird database

Asked

Viewed 90 times

1

How to bring the decimals (.00) back from my array after the database query using PHP?

See the result of the consultation;

array(2)
{
    ["COD_PRODUTO"]=>string(9) "AM0038784"
    ["PRECO"]=>float(700)
}
array(2)
{
    ["COD_PRODUTO"]=>string(9) "AM0038784"
    ["PRECO"]=>float(700)
}
array(2)
{
    ["COD_PRODUTO"]=>string(9) "AM0038784"
    ["PRECO"]=>float(700)
}

See my PHP code;

require_once 'function/_Global.php';

$data_busca_inicial = data_timer_data_hora_inicial();
$data_busca_final = data_timer_data_hora_final();

$sql = "
    SELECT  

        PRODUTOS.COD_PRODUTO,
        PRECOS.PRECO
      FROM
        PRODUTOS,
        PRECOS
WHERE
        PRECOS.produto = PRODUTOS.produto
        AND TABELA='89'
        AND TIPO_PROD='AC'
        AND DATA_ATUALIZACAO >'$data_busca_inicial'
        AND DATA_ATUALIZACAO <'$data_busca_final'
        ORDER BY  PRODUTOS.COD_PRODUTO 
            ";

$query= ibase_query ($dbh, $sql);
ibase_free_result($query);//Libera a memoria usada
ibase_close($dbh);//fecha conexão com o firebird

while ($row = ibase_fetch_assoc  ($query)) 
{
    var_dump($row);         
}

1 answer

2

Use the function number_format() of PHP.

See how it looks in your case:

$foo = (float) 700;
$bar = (float) 700.00;

echo '$foo formatada com casas decimais: '.number_format($foo, 2, ',', ''); // 700,00
echo '$bar formatada com casas decimais: '.number_format($bar, 2, ',', ''); // 700,00

In data of the type float, decimal places are simplified when they end in 0 (zero(s). If in your query returned some value with the different decimal places of 0, would be returned so: 700.12 or 700.4...

Recommended reading: PHP - Floating point numbers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.