Como posso sempre arredondar valores decimais para o valor inteiro mais próximo?
-
23-09-2019 - |
Pergunta
Em um relatório, tenho o seguinte código para um campo:
=Sum([PartQty]*[ModuleQty])
Resultados de exemplo são 2.1
e 2.6
.O que eu preciso é que esses valores sejam arredondados para o valor de 3
.Como posso alterar meu código de campo para sempre arredondar os resultados da minha expressão atual?
Solução
você poderia fazer
=Int(Sum([PartQty]*[ModuleQty]))+1
Eu penso. Isso obteria a parte int da soma (2) e depois adicionaria 1. Você pode precisar ser um pouco mais inteligente, pois isso provavelmente lhe dará 3, mesmo que a soma seja exatamente 2, o que provavelmente não é o que você deseja.
Não o testou, mas algo nesse sentido pode funcionar (a sintaxe do Access não é tão boa, mas deve dar a ideia certa):
Iif(Sum([PartQty]*[ModuleQty])-Int(Sum([PartQty]*[ModuleQty]))=0,
Sum([PartQty]*[ModuleQty]),
Int(Sum([PartQty]*[ModuleQty]))+1)
Outras dicas
Este é um truque de acesso antigo que aprendi há muito tempo e faz uso da maneira como o acesso lida com números fracionários e negativos. Experimente isso:
-Int(-[DecimalValue])
É estranho, mas sempre arredondará seus números para o número inteiro mais próximo.
Teste isso:Arredondar (seu número + 0,5, 0)