• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

homem_serio

Soma de Número decimal impossível

10 mensagens neste tópico

Tenho um valor vindo do access eque está a ser adicionado numa list2 e numa label que capta o total. O problema é que os números como por exemplo 3,22 contam como 3 e os 0.66 contam como 0.

Deixo o código para me ajudarem a tentar perceber o que fiz mal:

novo = 1

resultado = 0

For ListIndex = 0 To List1.ListCount

    If Text2.Text = List1.List(ListIndex) Then

      novo = 0

      valor1 = Val(Text3.Text)

      valor2 = Val(List2.List(ListIndex)) + valor1

      List2.RemoveItem ListIndex

      List2.AddItem valor2

      valor3 = Val(List3.List(ListIndex)) + 1

      List3.RemoveItem ListIndex

      List3.AddItem valor3

    End If

Next ListIndex

If novo = 1 Then

  List1.AddItem Text2.Text

  If Text4.Text = "" Then Text4.Text = 1

  List2.AddItem Val(Text3.Text) * Val(Text4.Text)

  List3.AddItem Text4.Text

End If

If novo = 1 Or novo = 0 Then

  For ListIndex = 0 To List2.ListCount

      resultado = resultado + Val(List2.List(ListIndex))

    Next ListIndex

  End If

Text4.Text = ""

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é porque estás a colocar esses valores em variáveis do tipo Integer e não Double.

Onde está a declaração das variáveis ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não cheguei a declarar variáveis neste botão. Como deveria ficar então?

Dim "x" as Double? Mas quais?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Onde fazes as contas, ou seja, onde somas os valores ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

     

      resultado = resultado + Val(List2.List(ListIndex))

 

  tentei dim resultado as double e não funcionou =\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mais uma vez aqui estou para vos chatiar mais um pouco. Continuo sem solução para a minha duvida de somar numeros decimais. Ja tentei declarar as variáveis como Double , mas continuo c/ o msm problema. Sei que provavelmente para voces isto é simples por isso toda a ajuda é preciosa!

Fico a espera  :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É assim, o vb6 não consegue somar números decimais com virgulas mas sim com um ponto. Tens que substituir a virgula por um ponto.

Ex1:
c=0,30+0,30
msgbox c
O resultado vai ser 0(Zero)

Ex2:
c=0.30+0.30
msgbox c
O resultado vai ser 0.60 (Sessenta cêntimos)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas os valores estao a vir do access e naop estou a conseguir trocar a virgula pelo ponto. Nao sei se é possivel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas os valores estao a vir do access e naop estou a conseguir trocar a virgula pelo ponto. Nao sei se é possivel

Tens aqui um pequeno exemplo de como se faz isso:

Exemplo:

O Mid é uma excelente função do VB, pois, altera um de seus próprios argumentos e isto economiza uma série de instruções de concatenação, veja o exemplo:

Dim mystring as String

mystring = "SOME STRING"
If Mid(mystring, 2, 1) = "O" Then 'Testa se na segunda posição da String é igual a O
Mid(mystring, 2, 1) = "A" 'Se for substitui o caracter O por A
End If

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora