Jump to content


matheussoli

Member Since 28/09/2011
Offline Last Active 05/03/2015, 09:21
-----

Topics I've Started

Arredondamento não funciona com determinado número

03/03/2015, 00:44

<?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

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;}
 
Inté

IPB Skin By Virteq