PROBLEMA EM CALCULO
Boa Tarde!!!
Tenho este calculo int ((1200.6 / 2) * 100) / 100 que deveria dar
600,30
porem esta dando 600,29
Porque isto esta ocorrendo? se eu jogo no excel funciona...
Obrigado!
Tenho este calculo int ((1200.6 / 2) * 100) / 100 que deveria dar
600,30
porem esta dando 600,29
Porque isto esta ocorrendo? se eu jogo no excel funciona...
Obrigado!
CONVERTA A EXPRESSÃO PARA DOUBLE E FORMATE COM DUAS CASAS DECIMAIS.
EX.: Format(CDbl((1200.6 / 2) * 100) / 100, [Ô]###,##0.00[Ô])
EX.: Format(CDbl((1200.6 / 2) * 100) / 100, [Ô]###,##0.00[Ô])
O problema é o seu INT
é só retirar o INT que funciona.. Assim:
((1200.6 / 2) * 100) / 100
Até +
é só retirar o INT que funciona.. Assim:
((1200.6 / 2) * 100) / 100
Até +
Cdec((1200.6 / 2) * 100) / 100
Ola! Obrigado a todos
Mas porque com int nao funciona? Se eu coloco no excel funciona.... sera que é bug?
Esta funcao criei para fazer calculos que o resultado pega somente duas casas decimais. Ou seja pego um valor e divido por outro
quero considerar somente as duas casas decimais SEM ARRENDONDAR NADA se der 122,999 quero que fique 122,99 endende?
Abracos
Mas porque com int nao funciona? Se eu coloco no excel funciona.... sera que é bug?
Esta funcao criei para fazer calculos que o resultado pega somente duas casas decimais. Ou seja pego um valor e divido por outro
quero considerar somente as duas casas decimais SEM ARRENDONDAR NADA se der 122,999 quero que fique 122,99 endende?
Abracos
Troque o Int por CDbl.
O INT ele é para usar com Números Inteiros... Logo se você usar 1200.6 com o uso do INT irá ficar 1200 entendeu?
Sem o INT o número continua 1200.6
Ate +
Sem o INT o número continua 1200.6
Ate +
Ola!
Estou utilizando a funcao int para ele pegar a parte inteira do resultado, ou seja quando eu multiplico 1545,558 (tres casas) por 100 = 154555 ai pego ele valor e divido por 100 temos 1545,55 !! ou seja com duas casas decimais sem arredondamento.
Estou utilizando a funcao int para ele pegar a parte inteira do resultado, ou seja quando eu multiplico 1545,558 (tres casas) por 100 = 154555 ai pego ele valor e divido por 100 temos 1545,55 !! ou seja com duas casas decimais sem arredondamento.
Você tem razão IChihara!
O resultado de int ((1200.6 / 2) * 100) deveria ser 60030 e está dando 60029.
Para obter o mesmo resultado do excel, faça assim:
O resultado de int ((1200.6 / 2) * 100) deveria ser 60030 e está dando 60029.
Para obter o mesmo resultado do excel, faça assim:
Int(CDec(1200.655 / 2) * 100) / 100
Ola pessoal!
Robiu, porque tenho que utilizar a funcao Cdec? pelo que entendi ela força o retorno do calculo como decimal.
se estou tratando de numeros porque preciso utiliza-la?
Abracos
Robiu, porque tenho que utilizar a funcao Cdec? pelo que entendi ela força o retorno do calculo como decimal.
se estou tratando de numeros porque preciso utiliza-la?
Abracos
Ichihara,
Acho que a questão é que vc tentou utilizar uma lógica para não arredondar as casas decimais.
Eu faria da seguinte forma: (há várias formas de fazer, mas acho essa mais simples).
Abs(Valor * 100)/100
Ou seja: se eu tenho o valor
Considerando que precisaria ter uma função para esse cálculo, que seria corriqueiro no meu aplicativo.
Function TiraDecimais(nValor as Double, nCasas as integer) as double [ô]Pode ser Currency também
Dim nDecimais as integer
nDecimais = 10^nCasas [ô]para saber com quantas casas decimais vai ser retornado o número
TiraDecimais = Abs(nvalor * nDecimais) / nDecimais
End Function
chamaria a funcao assim: msgbox TiraDecimais(1200.6 / 2, 2)
Acho que a questão é que vc tentou utilizar uma lógica para não arredondar as casas decimais.
Eu faria da seguinte forma: (há várias formas de fazer, mas acho essa mais simples).
Abs(Valor * 100)/100
Ou seja: se eu tenho o valor
Considerando que precisaria ter uma função para esse cálculo, que seria corriqueiro no meu aplicativo.
Function TiraDecimais(nValor as Double, nCasas as integer) as double [ô]Pode ser Currency também
Dim nDecimais as integer
nDecimais = 10^nCasas [ô]para saber com quantas casas decimais vai ser retornado o número
TiraDecimais = Abs(nvalor * nDecimais) / nDecimais
End Function
chamaria a funcao assim: msgbox TiraDecimais(1200.6 / 2, 2)
Tópico encerrado , respostas não são mais permitidas