Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Não tô conseguindo calcular porcentagem em PHP, ele me retorna numeros redondos, e arredonda automaticamente! O que fazer???
O certo seria que você manda-se o código mais tem uma coisa, vai no seu código e veja como você declara a variável se estiver com "INT" troque para um tipo flutuante "FLOAT"ou"DOUBLE"!!! vlw abração
A lógica é uma regra de três simples:
A --- B
C --- D
Sendo A o tamanho total e C o parcial, isto é, quanto o usuário já tem concluído.
O B seria sempre 100 (por cento) e o D é a única variável real, que você irá descobrir.
Multiplicando cruzado e isolando a variável você vai ter uma Termo Geral na seguinte definição:
D = BC / A
E se essa operação resultar num decimal você automaticamente terá um valor float, sem necessitar de nenhum tipo de conversão. Exemplo de Estudo (sistema de download):
$size = 2048;
$downloaded = 500;
printf( 'Progress: %f%%', ( ( 100 * $downloaded ) / $size ) ); // Progress: 24.414062%
Se você quiser diminuir o número de casas decimais para o mais comum que são apenas duas, modifique o placeholder de printf() usado para %.2f
Assim a saída será 24.41%
Porém, se a conta resultar uma divisão perfeita, sem decimais, você ainda verá o .00. Se você for fresco como eu, pode condicionar a utilização de dois placeholders diferentes:
<?php
$size = 2048;
$downloaded = 500;
$progress = ( ( 100 * $downloaded ) / $size );
printf(
'Progress: ' . ( is_float( $progress ) ? '%.2f%%' : '%d%%' ),
$progress
);
Supondo, agora que $size seja 1000 e $downloaded 500, teremos um 50% redondinho.
:bye:
poste o código que você está usando para ver como está... se não fica meio dificil saber qual o problema