Página 1 de 1

[resolvido] VBA Maluco?

Enviado: 07 Jan 2016, 20:16
por Damasceno Jr.
Um assunto que li em outro site e me deixou "encucado".

Código:
x = 6.3
y = 5.9

If x - y = 0.4 Then
MsgBox "Ok."
Else
MsgBox "Ops!"
End If


Por que o VBA só retorna "Ops!"?

Re: VBA Maluco?

Enviado: 08 Jan 2016, 06:26
por Avelino Sampaio
Damasceno,

neste código não vejo vc especificar os tipos de dados das variáveis. Acrescentes os tipos e veja o resultado

Dim x As Currency, y As Currency

Aguardamos

Re: VBA Maluco?

Enviado: 08 Jan 2016, 14:28
por Damasceno Jr.
Código:
Dim x As Double, y As Double

x = 6.3
y = 5.9

If x - y = 0.4 Then
MsgBox "Ok."
Else
MsgBox "Ops!"
End If

Re: VBA Maluco?

Enviado: 08 Jan 2016, 16:50
por Avelino Sampaio
O tipo Currency é o correto, devido a precisão. Experimente.

Aguardamos

Re: VBA Maluco?

Enviado: 09 Jan 2016, 16:20
por Damasceno Jr.
Com o Currency funciona direitinho, mestre. Mas e quando eu precisar trabalhar com notações científicas?

Re: VBA Maluco?

Enviado: 09 Jan 2016, 16:31
por Damasceno Jr.
com a função CDec o resultado é o esperado.

Código:
x = CDec(6.3)
y = CDec(5.9)

If x - y = 0.4 Then
MsgBox "OK"
Else
MsgBox "Ops!"
End If

Re: VBA Maluco?

Enviado: 10 Jan 2016, 08:20
por Avelino Sampaio
Valeu Damasceno !