Jump to content


Photo

Arredondamento não funciona com determinado número


  • Faça o login para participar
1 reply to this topic

#1 matheussoli

matheussoli

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Não informado
  • Localidade:Caratinga

Posted 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é


#2 zerof

zerof

    Normal

  • Usuários
  • 76 posts
  • Sexo:Masculino
  • Localidade:São Paulo
  • Interesses:GEOLOCALIZAÇÃO, APACHE, PHP, MYSQL, FOTOGRAFIA, GERENCIAMENTO DE PROJETOS

Posted 04/03/2015, 18:24

Esse laço de verificação é totalmente desnecessário.

 

Dê uma olhada:

http://usr.ed48.com/mat/?mfc=20[ para arredondar sob determinado critério ]

 

http://usr.ed48.com/mat/?mfc=18[ arredondar para o próximo inteiro ]

 

http://usr.ed48.com/mat/?mfc=19[ arredondar para o inteiro anterior ]

 

Todas essas funções são compatíveis com a LOCALE.


Edição feita por: zerof, 04/03/2015, 18:27.

--
zerof
ASSESSORIA & INTERDISCIPLINARIDADE
( ADVICE & INTERDISCIPLINARITY )
http://ed48.com/ - http://educar.pro.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq