CALCULO DE PORCENTAGEM EM TEXTBOX
Olá pessoal
Tenho um campo textbox que mostra o valor de um cálculo de porcentagem. Uso a seguinte fórmula:
txtPrecoVista.Text = (txtPrecoCusto.Text * (Me.txtLucroVista.Text / 100)) + txtPrecoCusto.Text
Se coloco no campo txtPrecoCusto o valor de R$ 10,00 e no campo txtLucroVista o valor de 100% ele retorna no campo txtPrecoVista o valor de R$ 100,00, perfeito né. Só que se coloco um valor com casa decimal em porcentagem tipo 22,22% ele apenas soma os valores dos campos e retorna R$ 32,22.
Todos os campos citados são do tipo decimal com duas casa depois da virgula.
Não faço a menor ideia do porque, já que com valores inteiros ele faz a operação correta.
Espero que possam me ajudar.
Um abraço
Tenho um campo textbox que mostra o valor de um cálculo de porcentagem. Uso a seguinte fórmula:
txtPrecoVista.Text = (txtPrecoCusto.Text * (Me.txtLucroVista.Text / 100)) + txtPrecoCusto.Text
Se coloco no campo txtPrecoCusto o valor de R$ 10,00 e no campo txtLucroVista o valor de 100% ele retorna no campo txtPrecoVista o valor de R$ 100,00, perfeito né. Só que se coloco um valor com casa decimal em porcentagem tipo 22,22% ele apenas soma os valores dos campos e retorna R$ 32,22.
Todos os campos citados são do tipo decimal com duas casa depois da virgula.
Não faço a menor ideia do porque, já que com valores inteiros ele faz a operação correta.
Espero que possam me ajudar.
Um abraço
Citação:Se coloco no campo txtPrecoCusto o valor de R$ 10,00 e no campo txtLucroVista o valor de 100% ele retorna no campo txtPrecoVista o valor de R$ 100,00, perfeito né
Esta confuso, pois vc já tem o valor do lucro.
Sendo assim é só somar não existe percentual nessa historia.
txtPrecoVista.Text = txtPrecoCusto.Text + Me.txtLucroVista.Text
Ou explique melhor.
Bom dia Nilsontres
O valor do campo txtPrecoVista e gerado através de uma formula, como segue:
txtPrecoVista.Text = (txtPrecoCusto.Text * (Me.txtLucroVista.Text / 100)) + txtPrecoCusto.Text
Se uso valor inteiro no campo txtLucroVista o retorno e correto, mas se uso valores fracionados (Ex. 30,05%) retorna o valor somado dos campos txtPrecoCusto e txtPrecoVista, e isso que tá me deixando confuso.
Com valor inteiro no campo txtLucroVista funciona perfeitamente, mas com valores fracionados não.
Espero ter me feito entender.
Tenha um lindo dia
O valor do campo txtPrecoVista e gerado através de uma formula, como segue:
txtPrecoVista.Text = (txtPrecoCusto.Text * (Me.txtLucroVista.Text / 100)) + txtPrecoCusto.Text
Se uso valor inteiro no campo txtLucroVista o retorno e correto, mas se uso valores fracionados (Ex. 30,05%) retorna o valor somado dos campos txtPrecoCusto e txtPrecoVista, e isso que tá me deixando confuso.
Com valor inteiro no campo txtLucroVista funciona perfeitamente, mas com valores fracionados não.
Espero ter me feito entender.
Tenha um lindo dia
Olá,
você esta a receber esse valores decimais com ponto (.) ou virgula (,) nas textbox[ô]s?
penso que poderá ter a ver com isso e suas definições regionais..
experimente este exemplo, que esta recebendo virgula(,)
Poste aà se ajudou no problema
[Ô]Se coloco no campo txtPrecoCusto o valor de R$ 10,00 e no campo txtLucroVista o valor de 100% ele retorna no campo txtPrecoVista o valor de R$ 100,00, perfeito né.[Ô]
não percebo como isso possa dar R$ 100,00
você esta a receber esse valores decimais com ponto (.) ou virgula (,) nas textbox[ô]s?
penso que poderá ter a ver com isso e suas definições regionais..
experimente este exemplo, que esta recebendo virgula(,)
Option Explicit On
Option Strict On
Imports System.Globalization
Public Class Form1
Dim nfi As NumberFormatInfo = New Globalization.CultureInfo([Ô]pt-BR[Ô], False).NumberFormat
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[ô] Não precisa disto porque já é a vigula
[ô]nfi.NumberDecimalSeparator = [Ô],[Ô]
Dim precoVista As Decimal
Dim precoCusto As Decimal = Decimal.Parse(txtPrecoCusto.Text, nfi)
Dim lucroVista As Decimal = Decimal.Parse(txtLucroVista.Text, nfi)
precoVista = precoCusto * (lucroVista / 100) + precoCusto
txtPrecoVista.Text = precoVista.ToString([Ô]C[Ô], nfi)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
[ô] botão 2 mostra o separedor decimal
Dim decimalSeparator As String = Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
MsgBox(decimalSeparator)
End Sub
End Class
Poste aà se ajudou no problema
[Ô]Se coloco no campo txtPrecoCusto o valor de R$ 10,00 e no campo txtLucroVista o valor de 100% ele retorna no campo txtPrecoVista o valor de R$ 100,00, perfeito né.[Ô]
não percebo como isso possa dar R$ 100,00
Boa Tarde Ganda_Nick
Quem sabe, sabe, meus parabéns.
Sem a ajuda de pessoas como você nao sei o que seria de principiantes como eu.
Ficou perfeito, os valores inteiros e fracionados funcionam corretamente.
OBS. Também não consigo perceber como poderia dar R$ 100,00
O resultado correto é R$ 20,00, um errinho de digitação. kkkkk
Novamente meus parabéns.
Quem sabe, sabe, meus parabéns.
Sem a ajuda de pessoas como você nao sei o que seria de principiantes como eu.
Ficou perfeito, os valores inteiros e fracionados funcionam corretamente.
OBS. Também não consigo perceber como poderia dar R$ 100,00
O resultado correto é R$ 20,00, um errinho de digitação. kkkkk
Novamente meus parabéns.
Tópico encerrado , respostas não são mais permitidas