tupinikin 1 Denunciar post Postado Novembro 11, 2011 Ola pessoal tenho um problema, preciso arredondar um valor assim R$12,09 arrendondar p/ baixo R$12,00 se for maior ou igual a R$12,10 arredondar p/ cima R$13,00 o ceil echo ceil(-6.12); // O resultado será arredondado para -6 echo floor(-6.12); // O resultado será arredondado para -7 echo round(-6.12); // O resultado será arredondado para -6 Eu pensei em "explodir" a virgula, e pegar os números depois da virgula e fazer a comparação mas queria saber se tem algum método mais pratico grato Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Novembro 11, 2011 e por qual motivo de nao usar as funcoes ja definidas pelo php? se a conta der negativa, você eh que definiu os calculos de forma errada... Compartilhar este post Link para o post Compartilhar em outros sites
tupinikin 1 Denunciar post Postado Novembro 11, 2011 Não teria problema de usar as funções do php O problema é mais na lógica que nos comandos Como pegar a casa decimal após a virgula e arredondar p/ cima ou p/ baixo mas seguindo o patamar de 0 a 9 para menos de 10 a 99 p/ cima Eu pensei assim pegar o valor depois da virgula se fosse 10 ou maior fazer ele virar 100 (ou 1) mas acontece que minha lógica não deu certo Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Novembro 11, 2011 <?php echo round(3.4); // 3 echo round(3.5); // 4 echo round(3.6); // 4 echo round(3.6, 0); // 4 echo round(1.95583, 2); // 1.96 echo round(1241757, -3); // 1242000 echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06 ?> entao use o round com o segundo parametro... http://br.php.net/manual/en/function.round.php Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Novembro 11, 2011 <?php $v = 10.02; echo $v - (int) $v < 0.1 ? floor( $v ) : ceil( $v ); EDIT: Uma versão mais simples: $v = 10.10; echo floor( $v + ( $v - (int) $v > 0.09 ) ); Compartilhar este post Link para o post Compartilhar em outros sites
tupinikin 1 Denunciar post Postado Novembro 11, 2011 Igor e João Muito obrigado pela a ajuda, vou tentar implantar aqui e volto com a solução do meu problema mas acho que agora vai dar certo Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Novembro 11, 2011 Mais uma versão, agora mais rápida e não usa nenhuma função: <?php $v = 10.10; echo (int) $v + ( $v - (int) $v > 0.09 ); :P Compartilhar este post Link para o post Compartilhar em outros sites
tupinikin 1 Denunciar post Postado Novembro 11, 2011 :clap: Meu problema é com a lógica mesmo..rsrs muito obrigado a todos R$ 135,76 esse 76 que me mata.. Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Novembro 11, 2011 ae você tem que definir uma regra de arredondamento... Compartilhar este post Link para o post Compartilhar em outros sites
tupinikin 1 Denunciar post Postado Novembro 11, 2011 Poxa, muito obrigado mesmo deu certinho aqui finalizei assim echo number_format($tudo, 2, ',', '.'); onde tudo é a variável que armazena as informações do script do João Então eu pego e transformo com o number_format e voilá, deu certo. Tópico resolvido Compartilhar este post Link para o post Compartilhar em outros sites
Daniloinf 3 Denunciar post Postado Novembro 11, 2011 Essa sacada foi 10* XD Mais uma versão, agora mais rápida e não usa nenhuma função: <?php $v = 10.10; echo (int) $v + ( $v - (int) $v > 0.09 ); :P Compartilhar este post Link para o post Compartilhar em outros sites