Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Definir quantidade de casas decimais no resultado.

Tentei utilizar a função round($variavel, 2) para mostrar apenas duas casas decimais no último "echo" para a variável $imc . Contudo, foi entendido como string. Em qual momento devo definir a quantidade de casas decimais esperadas para o resultado de uma variável ?

<?php

$altura = 1.70;
$peso = 72;
$imc = $peso / ($altura ** 2);


    if(  $imc >= 18.5  && $imc <= 24.99 ) {
      echo("classificação de PESO ADEQUADO").PHP_EOL;

    }
    elseif($imc > 25){
        echo("classificação de SOBREPESO").PHP_EOL;
    }
    else{
        echo("classificação de ABAIXO DO PESO").PHP_EOL;
    }

     $pesoMinimo = (18.5 * (1.70 ** 2)) ;
     $pesoMaximo = (24.9 * (1.70 ** 2));

    echo("O peso mínimo é de $pesoMinimo kgs").PHP_EOL;
    echo("O peso Maximo é de $pesoMaximo").PHP_EOL;
    echo("Seu IMC é de = round($imc,2)");
3 respostas

Olá, por engano você colocou a funcao round do PHP dentro das " ", entao o php entendeu como se fosse texto. O correto seria colocar dessa seguinte maneira, concatenando com o "." =>

echo("Seu IMC é de = " . round($imc,2));

solução!

Você também pode usar o number_format($imc, 2, '.', ''); O number_format — Formata um número com os milhares agrupados.

number_format(float $number, int $decimals = ?): string

number_format() retorna uma versão formatada de number. Esta função aceita um, dois ou quatro parâmetros (não três).

Obrigado gente, apenas mais uma dúvida :

Com relação ao number_format($imc,2) , devo informar a quantidade de casas desejadas durante a primeira declaração da variável ou posso inserir no último echo?