1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Programa Calcular IVA Visual Basic

Discussão em 'Programação' iniciada por jcancela, 23 de Setembro de 2012. (Respostas: 8; Visualizações: 1574)

  1. Boa tarde,

    estou a tentar fazer um programa em visual basic para calcular o IVa, sou novo nisto e estou a aprender com videos do youtube :/

    Private Sub bt_calcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_calcular.Click
    If (tx_num1.Text <> "" And tx_num2.Text) Then
    tx_res.Text = (CInt(tx_num1.Text) + CInt(tx_num2.Text)) * 1.23
    Else : MessageBox.Show("falso")
    End If

    isto é o que fiz, funciona mas o problema é quando os números têm casas decimais dá um resultado estúpido :s
    e queria que o resultado fosse dado com 4 casa decimais
    alguém me pode dar umas dicas ?
    obrigado
     
  2. Se queres estás a trabalhar com valores decimais não podes converter para tudo para inteiros, tens de converter para Double.
    Para apresentar um determinado número de casas decimais utiliza-se a função FormatNumber

    Código:
    tx_res.Text = FormatNumber(([B]CDbl[/B](tx_num1.Text) + [B]CDbl[/B](tx_num2.Text)) * 1.23, 4)
    
     
  3. Muito obrigado ricardo93
    Foi uma preciosa ajuda!

    Private Sub bt_calcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_calcular.Click
    If (tx_num1.Text <> "" And tx_num2.Text) Then
    tx_res.Text = FormatNumber((CDbl(tx_num1.Text) + CDbl(tx_num2.Text)) * 1.23, 4)
    Else : MessageBox.Show("falso")
    End If

    Ficou assim :D

    Só tenho mais um pequeno problema, por exemplo:

    (1.2+2.4)*1.23=4.4280, até aqui tudo bem ... no programa dá o resultado certo mas com a vírgula fora do lugar :s dá 44,2800

    alguém sabe como posso resolver isto ? :s
     
  4. Por acaso não sabes como é que posso trocar a virgula por o ponto?

    Eu explico melhor, se eu inserir os valores 1.2 o programa assume isto como 1200 e não como 1,2. Eu gostava que ele assumisse o ponto como uma vírgula porque no teclado NUmPad apenas tem um ponto e não a vírgula !
     
  5. Faz Replace da vírgula pelo ponto antes de convertes para double.
     
  6. desculpa lá mais uma vez, nesta linha de código como faço ? :s já tentei mil e uma coisa mas dá erro sempre! onde faço o replace?

    tx_res.Text = FormatNumber((CDbl(tx_num1.Text) + CDbl(tx_num2.Text)) * 1.23, 4)
     
  7. Substitui esta linha:
    Código:
    [COLOR=#EDEDED]tx_res.Text = FormatNumber((CDbl(tx_num1.Text) + CDbl(tx_num2.Text)) * 1.23, 4)[/COLOR]
    
    por isto:

    Código:
    Dim num1, num2 As Double
    num1 = CDbl(tx_num1.Text.Replace(".", ","))
    num2 = CDbl(tx_num2.Text.Replace(".", ","))
    tx_res.Text = FormatNumber((num1 + num2) * 1.23, 4)
    
     
  8. Obrigadão :D és o maior :D
     

Partilhar esta Página