none
Contas com float RRS feed

  • Pergunta

  • Boas pessoal, preciso de fazer uma conta do tipo float (nuemros decimais), mas como eu estou a fazer é como se o numero estivesse inteiro, não assume o que está depois da virgula. o preco eu vou buscar à base de dados mas la tenho como float o tipo. podem ajudar??

    [code=vb]

            Dim b, c, subtotal As Double
            b = Val(txtquant.Text)
            c = Val(txtpreco.Text)
            subtotal = b * c
          Lbtotal.Text = subtotal

    [/code]

    terça-feira, 15 de abril de 2014 22:04

Respostas

  • Em "txtpreco.Text" o preço aparece como? Separado com vírgula ou com ponto?

    Se você estiver programando em um sistema que usa as opções regionais (Windows >> Painel de Controle) como no Brasil, tem que ser vírgula, se não tem que ser ponto e assim vai...

    Se não é simples:

    Public Sub Test()
        Dim b As Double, c As Double, subtotal As Double
        c = CDbl(txtquant.Text)
        d = CDbl(txtpreco.Text)
        subtotal = b * c
        Lbtotal.Text = subtotal
    End Sub

    Veja se funciona.

    • Sugerido como Resposta SammuelMiranda terça-feira, 22 de abril de 2014 12:07
    • Marcado como Resposta Giovani Cr terça-feira, 22 de abril de 2014 18:43
    terça-feira, 22 de abril de 2014 12:07

Todas as Respostas

  • Olá,

    Tente assim:

            Dim b, c, subtotal As Double
    
            b = Double.Parse(txtquant.Text)
            c = Double.Parse(txtpreco.Text)
    
            subtotal = b * c
    
            Lbtotal.Text = subtotal.ToString()


    Herbert Lausmann


    terça-feira, 15 de abril de 2014 22:19
  • Ele assim ja me mostra que é um valor decimal, mas continua fazendo a conta como numero inteiro
    quarta-feira, 16 de abril de 2014 16:34
  • Ele assim ja me mostra que é um valor decimal, mas continua fazendo a conta como numero inteiro

    Quais os valores que estão sendo inseridos nos TextBoxs?

    Herbert Lausmann

    quarta-feira, 16 de abril de 2014 18:25
  •        


    Dim b, c, subtotal As Double

            b = Val(txtquant.Text.Replace(",", "."))
            c = Val(txtpreco.Text.Replace(",", "."))
            subtotal = b * c
    Lbtotal.Text = subtotal

    jotamax, a função VAL retorna o valor no tipo double, e esse tipo de dados é representado o separador das casas decimais por ponto(".") então usei o replace para se caso o usuario digite virgula(",") no calculo ele substitua por ponto para o calculo ocorrer corretamente

    caso vc queira exibir o valor em R$ na label vc pode usar a funçao format({Valor a ser formatado}, {formato})

    lbltotal.text = "R$ " & Format(subtotal, "0.00")


    quarta-feira, 16 de abril de 2014 18:45
  • Eu digito a quantidade do produto e vou buscar à base de dados o preco desse produto. E o preco esta em decimal
    quarta-feira, 16 de abril de 2014 20:07
  • Eu digito a quantidade do produto e vou buscar à base de dados o preco desse produto. E o preco esta em decimal

    Por favor, mostre-nos um print da tela mostrando os valores que estão nos TextBoxes no momento que você irá executar o calculo.

    Herbert Lausmann

    quarta-feira, 16 de abril de 2014 20:18
  • Em "txtpreco.Text" o preço aparece como? Separado com vírgula ou com ponto?

    Se você estiver programando em um sistema que usa as opções regionais (Windows >> Painel de Controle) como no Brasil, tem que ser vírgula, se não tem que ser ponto e assim vai...

    Se não é simples:

    Public Sub Test()
        Dim b As Double, c As Double, subtotal As Double
        c = CDbl(txtquant.Text)
        d = CDbl(txtpreco.Text)
        subtotal = b * c
        Lbtotal.Text = subtotal
    End Sub

    Veja se funciona.

    • Sugerido como Resposta SammuelMiranda terça-feira, 22 de abril de 2014 12:07
    • Marcado como Resposta Giovani Cr terça-feira, 22 de abril de 2014 18:43
    terça-feira, 22 de abril de 2014 12:07