sLUGo Posted July 19, 2006 at 11:24 PM Report #39156 Posted July 19, 2006 at 11:24 PM Boas... Iniciei-me na linguagem PHP há coisa de dois dias... E tenho como projecto pessoal fazer um sysinfo (a partir do ZERO, programando no nano via SSH) para o meu servidor de web caseiro... Agora deparo-me com um problema... Memória RAM:[363 MB Usados/ 1011 MB Totais] -=- [64.0949554896 % Livre] Aqui a % de RAM livre aparecem-me demasiadas casas decimais... Gostava de saber como contornar este problema! Código: <?php $ram_livre=$ram_usada/$ram_total; echo("[". $ram_usada. "MB Usados/ ". $ram_total. "MB Totais]"); echo (" -=- ". "[". (100-$ram_livre*100). " % Livre]"); ?> Cumprimentos! 🙂
QuickFire Posted July 19, 2006 at 11:28 PM Report #39157 Posted July 19, 2006 at 11:28 PM podes usar a função round(); 🙂 o código ficaria algo do género: <?php $ram_livre=round($ram_usada/$ram_tota)l; echo("[". $ram_usada. "MB Usados/ ". $ram_total. "MB Totais]"); echo (" -=- ". "[". (100-$ram_livre*100). " % Livre]"); ?> Ele assim passaria a arredondar às unidades 😄
sLUGo Posted July 19, 2006 at 11:50 PM Author Report #39161 Posted July 19, 2006 at 11:50 PM Boas e obrigado pela resposta (ainda que não correcta)... 🙂 Ao adicionar o round, ele arredonda-me (por exemplo) de 63 % para 100 % ... Obrigado na mesma... Aguardo mais ajuda! Cumprimentos!
Rui Carlos Posted July 20, 2006 at 12:07 AM Report #39164 Posted July 20, 2006 at 12:07 AM se passares o valor para uma string, não podes depois seleccionar apenas os primeiros n caracteres? (é claro que assim apenas estavas a truncar e não a arredondar) Rui Carlos Gonçalves
sLUGo Posted July 20, 2006 at 12:11 AM Author Report #39165 Posted July 20, 2006 at 12:11 AM Problema resolvido... Tive a "estudar" o round e vi como funcionava... Declarei uma variável $percentagem com a equação que fiz para chegar à percentagem de RAM livre... Depois foi só adicionar no echo round($percentagem,2) E ele arredondou o valor da percentagem para duas casas decimais! 🙂 Obrigado pela ajuda e parabéns pela rapidez das respostas! Cumprimentos!
Saco Posted July 20, 2006 at 12:22 AM Report #39166 Posted July 20, 2006 at 12:22 AM o round() arredonda às unidades, certo? então como o teu $ram_livre era qualquer coisa como 0.923557... ele ia arredondar para 1, logo tinhas um resultado final de 100% uma maneira mais fácil era fazeres $ram_livre=$ram_usada/$ram_total; $ram_livre=round($ram_livre*100);
sLUGo Posted July 20, 2006 at 12:41 AM Author Report #39167 Posted July 20, 2006 at 12:41 AM <?php $ram_livre=($ram_usada/$ram_total); $percentagem= (100-$ram_livre*100); echo ("[". $ram_usada. "MB Usados/ ". $ram_total. "MB Totais] -=- ". "[". round($percentagem,2). " % Livre]"); ?> O código (uma parte dele) está assim, e funciona como pretendo... 🙂 Cumprimentos
QuickFire Posted July 20, 2006 at 05:15 PM Report #39262 Posted July 20, 2006 at 05:15 PM Se funciona muito bem 🙂 O round dá para arredondar às casas decimais desejadas 😄 Vejam lá bem: http://www.php.net/round
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now