Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Michelli Lucas

Porcentagem

Recommended Posts

Estou usando o código abaixo para porcentagem, mas o valor está arredondando e não está me trazendo o valor real. Exemplo: o valor é 33,33 e está me retornando 33. Está retornando o valor arredondado e não o valor real[

SELECT Sum (hits) AS Total"

SELECT hits AS Hits

UPDATE enquete_respostas set Porcentagem="&formatnumber(resposta2("Hits") / resposta("Total") * 100,00)&"

:wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando o código abaixo para porcentagem, mas o valor está arredondando e não está me trazendo o valor real. Exemplo: o valor é 33,33 e está me retornando 33. Está retornando o valor arredondado e não o valor real[

SELECT Sum (hits) AS Total"

SELECT hits AS Hits

UPDATE enquete_respostas set Porcentagem="&formatnumber(resposta2("Hits") / resposta("Total") * 100,00)&"

:wacko:

Caro,

isso acontece porque quando o banco de dados te retorna o valor de

(resposta2("Hits") / resposta("Total")) * 100,00

, ele te retorna um INT, retirando assim as casas decimais.

 

Na verdade, o que o banco está fazendo nesse caso é:

(INT/INT)*INT = INT

AQUI, a divisão já irá te retornar um INT e com isto a perda das casas decimais.

 

Para retornar um numero com ponto flutuante, o correto seria a operação:

(FLOAT/FLOAT)*FLOAT = FLOAT

 

EU faria desta maneira (tratamento via ASP):

 

UPDATE enquete_respostas set Porcentagem="&formatnumber(Cdbl(resposta2("Hits")) / Cdbl(resposta("Total")) * 100,00)

 

Assim, você transformou tudo em Double todos os valores antes da divisão.

 

Espero que ajude!

Guilherme Amaral de Campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.