joaozonta 0 Denunciar post Postado Fevereiro 14, 2019 Estou com um problema que não consigo resolver. Eu tenho um valor 0.444444 e preciso de uma função que arredonde para 0.45 Já tentei roud anda ceil: $value = 0.444444; echo round($value, 2); // 0.44 echo ceil($value); // 1 Alguma sugestão? Compartilhar este post Link para o post Compartilhar em outros sites
marcosmarcolin 0 Denunciar post Postado Fevereiro 14, 2019 Aqui no fórum tem a função que precisa. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Fevereiro 15, 2019 Sugestão: <?php bcscale( 20 );// Precisão nas operações matemáticas function arredondar_pra_cima( $numero ) { return bcdiv( ceil( bcmul( $numero, 100 ) ), 100 ); } $exibir = function( $num ) { printf( "%-09s: %.2f\n", $num, arredondar_pra_cima( $num ) ); }; $exibir( 0.444444 ); $exibir( 3.25 ); $exibir( 3.2555555 ); $exibir( 3.2444444 ); $exibir( 3.2011111 ); $exibir( 3.2111111 ); Resultado: 0.4444440: 0.45 3.2500000: 3.25 3.2555555: 3.26 3.2444444: 3.25 3.2011111: 3.21 3.2111111: 3.22 Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme Luiz 41 Denunciar post Postado Fevereiro 17, 2019 aplique apenas e unica e simplesmente a função nativa number_format(); Ela além de formatar também faz o arrendondamento para cima. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Fevereiro 18, 2019 @Guilherme Luiz, na verdade não, meu caro. O number_format arredonda, mas não para cima. Compartilhar este post Link para o post Compartilhar em outros sites
11closed 0 Denunciar post Postado Fevereiro 28, 2019 @Matheus Tavares não sei se meu PHP está configurado diferente, mas aqui o number_format(); está arredondando para cima $valor = '157.75'; $divide_em = '2'; $divide_valor = $valor/$divide_em; //resultado= 78.875 $divide_valor2 = number_format($divide_valor,2); echo $divide_valor2."<br>"; //resultado= 78.88 Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Fevereiro 28, 2019 Olá @11closed. Tudo bem? Você está utilizando um número com decimal superior a 5, levando o arredondamento naturalmente para cima. Se pegarmos o exemplo do título deste tópico, veremos que o number_format não arredonda como o autor do tópico havia pedido. Faça o teste: echo number_format( 0.444444, 2 );// 0.44 e não 0.45 Sacou? Veja também: https://secure.php.net/manual/pt_BR/function.round.php https://secure.php.net/manual/pt_BR/function.ceil.php https://secure.php.net/manual/pt_BR/function.floor.php Compartilhar este post Link para o post Compartilhar em outros sites