matheussoli Postado Março 3, 2015 Denunciar Share Postado Março 3, 2015 <?php $num = 7.2; $inteiro = intval($num); $decimal = $num - $inteiro; if($decimal == 0){$nota = $inteiro;} if($decimal > 0.2){$nota = $inteiro+0.5;} if($decimal <= 0.2){$nota = $inteiro;} if($decimal == 0.5){$nota = $num;} if($decimal > 0.5){$nota = $inteiro+1;} echo $nota; Prezados. Estou quebrando cabeça mas nãu estou entendendo esta situação. Nas condições que eu escrevi acima esperava arredondar da seguinte maneira: Quando for 7.0 continua assim. Quando for 7.2 volta para 7.0. Quando for 7.3 arredonda para 7.5. Quando for 7.5 continua assim. Quando for 7.6 em diante arredonda para 8. Dei como exemplo o 7. Porém fiz tstes com os números 2.2, 3.2, 4.2, 5.2 e 6.2 e não volta para o número inteiro. Já a partir do 8.2, 9.2, 10.2 e ... Funciona direitinho. Acima o resultado teria que ser 7 porém está dando 7.5 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 matheussoli Postado Março 3, 2015 Autor Denunciar Share Postado Março 3, 2015 Resolvido! Fiz essa substituição: $num = 7.2; $num_part = explode(".", $num); $inteiro = $num_part[0]; $decimal = $num_part[1]; if($decimal == 0){$nota = $inteiro;} if($decimal > 2){$nota = $inteiro + 0.5;} if($decimal <= 2){$nota = $inteiro;} if($decimal == 5){$nota = $num;} if($decimal > 5){$nota = $inteiro + 1;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
matheussoli
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.