Arredondando o float e usando o match ao invés dos ifs. Segue o código:
<?php
$altura = 1.80;
$peso = 78;
$resultado = $peso / $altura ** 2;
echo "Seu IMC é: " . number_format($resultado, 2, '.', '') . PHP_EOL; // Formatando para deixar somente 2 casas decimais
$resultado_view = match (true) {
$resultado <= 18.4 => 'Classificação: Magreza | Grau de Obesidade 0',
$resultado <= 18.5 || $resultado <= 24.9 => 'Classificação: Normal | Grau de Obesidade 0',
$resultado <= 25.0 || $resultado <= 29.9 => 'Classificação: Sobrepeso | Grau de Obesidade I',
$resultado <= 30.0 || $resultado <= 39.9 => 'Classificação: Obesidade | Grau de Obesidade II',
$resultado > 40.0 => 'Classificação: Obesidade Grave | Grau de Obesidade III',
default => 'Insira o valor correto',
};
echo $resultado_view; // Exibindo resultado com a mensagem de acordo com o IMC