Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Operação [RESOLVIDO]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Wagner.cwb
Manda bem
Manda bem
Mensagens: 168
Registrado em: Sáb Set 24, 2016 4:48 pm

Operação [RESOLVIDO]

Mensagem por Wagner.cwb »

Olá Caros!

vou postar uma pergunta "tosca", pois parece simples e deve ser... mas já queimei fósforo e nada.

Estou tentando realizar uma operação simples de uma variável menos a outra, porém o resultado não bate.

Declarei como public três variáveis

Código: Selecionar todos

Public INS_AC As Double
Public INSAC_ANT As Double
Public RESULT As Double
A operação é:

Código: Selecionar todos

If INSAC_ANT > INS_AC Then
RESULT = (INSAC_ANT - INS_AC)
RESULT = Format(RESULT, "#,##0.00")
Me.TextBox9 = (Range("V2").Value & " " & RESULT)
Else
RESULT = (INS_AC - INSAC_ANT)
Me.TextBox9 = (Range("V1").Value & " " & (RESULT)
End If
No teste de mesa
INS_AC = 87,98
INSAC_ANT = 87,99

RESULT = (INS_AC - INSAC_ANT)

resultado esperado = 0,01
Esta aparecendo = 9,99999999999091E-03

A princípio, pensei que o problema estivesse no tipo das variáveis, porém já troquei para "long" e nada.

Por favor, podem me ajudar?

obrigado, abraços!
Editado pela última vez por Wagner.cwb em Seg Mai 29, 2017 9:06 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Operação

Mensagem por webmaster »

Talvez seja problema de conversão de dados. Force tudo para converter para double com CDbl(valor) e veja o que acontece.


Wagner.cwb
Manda bem
Manda bem
Mensagens: 168
Registrado em: Sáb Set 24, 2016 4:48 pm

Re: Operação

Mensagem por Wagner.cwb »

Tentei também e não foi...

mas entendi o problema, ele esta fazendo a conta de 87,98 com "," e preciso mudar para ".", tentei usar o CDb,
cDec.. e nada.

Código: Selecionar todos

INSAC_ANT = CDbl(INSAC_ANT)
e manteve a ","

INS_AC = 87,98
INSAC_ANT = 87,99

a planilha fonte esta como text e não tenho acesso para modificá-la.


Wagner.cwb
Manda bem
Manda bem
Mensagens: 168
Registrado em: Sáb Set 24, 2016 4:48 pm

Re: Operação

Mensagem por Wagner.cwb »

Parece que arrumei um jeito...

depois de calcular eu add a linha

RESULT = FormatNumber(RESULT, 2)

voi deixar testando outros valores e depois validar a solução,

obrigado!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder