Boa noite,
A minha bd tem um modulo de vendas de bar, em que são registadas todas as vendas efectuadas, reparei que quando realizava um relatorio de vendas mensais, havia diferença de centimos entre o total obtido no relatorio (atrves da formula somar) e o resultado obtido na maquina calculadora, descobri mais tarde que este facto deve-se ao modo de arredendamento do access,l pesquisei na net e descobri este codigo abaixo, criei um mudulo e apliquei no campo do formulario da seguinte maneira (=Arredondado(([total_apoio]);2)), em parte resultou, agorA surgiu o meu segundo problema, verifiquei que em certos valores ele não efectua o arredendamento que devia dou dois exemplos onde ele não efectuou;
1,615 passa para 1.62 - correcto
0,903 passa para 0.90 - correcto
1,425 mantem os 1.42 - não efectuou o arrendondamento, esta errado
Function Arredondado(dblNumber As Double, IntDecimais As Integer) As Double
Dim dblfator As Double
Dim dblTemp As Double
dblfator = 10 ^ IntDecimais
dblTemp = dblNumber * dblfator + 0.5
Arredondado = Int(dblTemp) / dblfator
End Function
Gostaria de saber se alguem sabe porque que isto esta a acontecer e se me pode ajudar?
Obrigado
A minha bd tem um modulo de vendas de bar, em que são registadas todas as vendas efectuadas, reparei que quando realizava um relatorio de vendas mensais, havia diferença de centimos entre o total obtido no relatorio (atrves da formula somar) e o resultado obtido na maquina calculadora, descobri mais tarde que este facto deve-se ao modo de arredendamento do access,l pesquisei na net e descobri este codigo abaixo, criei um mudulo e apliquei no campo do formulario da seguinte maneira (=Arredondado(([total_apoio]);2)), em parte resultou, agorA surgiu o meu segundo problema, verifiquei que em certos valores ele não efectua o arredendamento que devia dou dois exemplos onde ele não efectuou;
1,615 passa para 1.62 - correcto
0,903 passa para 0.90 - correcto
1,425 mantem os 1.42 - não efectuou o arrendondamento, esta errado
Function Arredondado(dblNumber As Double, IntDecimais As Integer) As Double
Dim dblfator As Double
Dim dblTemp As Double
dblfator = 10 ^ IntDecimais
dblTemp = dblNumber * dblfator + 0.5
Arredondado = Int(dblTemp) / dblfator
End Function
Gostaria de saber se alguem sabe porque que isto esta a acontecer e se me pode ajudar?
Obrigado