williamjda Posted September 10, 2013 at 02:42 AM Report #523957 Posted September 10, 2013 at 02:42 AM (edited) Amigos bom dia.Tenho uma questão que estou quebrando a cabeça... Tenho um form com um textbox1.text (quantidade em andamento) = 5 textbox2.tex (quantidade concluida) = 3 textbox3.text (Resultado da divisão do textbox 1 / 2 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click textbox3.Text = Val(textbox1.Text) / Val(textbox2.Text)End Sub No meu caso a resultado da questão é 5 / 2 = 0,6 que em porcetagem seria 60%.Preciso que o resultado retorne para mim 60% e não 0,6. Como posso resulver esta questão? Att;William Edited September 10, 2013 at 02:46 AM by williamjda
nelsonr Posted September 10, 2013 at 07:20 AM Report #523959 Posted September 10, 2013 at 07:20 AM Multiplicar por 100? E já agora devias testar se o valor do divisor não é zero, senão dá erro "Divided by zero"
thoga31 Posted September 10, 2013 at 08:34 AM Report #523960 Posted September 10, 2013 at 08:34 AM (edited) A percentagem é uma representação mais agradável de rácios. Qualquer rácio devolve um valor entre 0 e 1, inclusive, o que multiplicado por 100 nos dá o resultado em percentagem, que nos é mais agradável ler. Por exemplo, é mais fácil dizer que temos um "desconto de 60%" do que um "desconto de 0,6" (até parece não fazer sentido dito assim). Portanto, percentagem = rácio * 100%. Por outro lado, e como o @nelsonr disse e muito bem, verifica o caso da divisão por zero, se não o programa vai abaixo. Por último, como eu não sou adepto da conversão implícita, converte o resultado em String, estás a atribuir um Double a uma propriedade do tipo String. O VB permite isso, mas não acho boa prática. (a + b).ToString Edited September 10, 2013 at 08:34 AM by thoga31 Knowledge is free!
jpaulino Posted September 10, 2013 at 11:12 AM Report #523968 Posted September 10, 2013 at 11:12 AM Pode usar a função FormatPercent para mostrar como queres. FormatPercent Function http://msdn.microsoft.com/en-us/library/8zh1kxd7(v=vs.90).aspx
williamjda Posted September 10, 2013 at 06:38 PM Author Report #524024 Posted September 10, 2013 at 06:38 PM Amigos boa tarde e eobrigado pela ajuda. O código ficou assim. Dim Result As Double Result = Val((TextBox1.Text / TextBox2.Text)) TextBox3.Text = String.Format("{0:N2}", Result) & "%"
williamjda Posted September 10, 2013 at 07:44 PM Author Report #524028 Posted September 10, 2013 at 07:44 PM (edited) Pessoal fiz uma pequena melhora para retornar o resultado em 100% e não 1,00% Dim Result As Double 'quando é pra saber o valor que corresponde do total ai vc faz x 100 Result = Val((txtConcl.Text / txtTotal.Text) * 100) txtPercConl.Text = String.Format("{0:N2}", Result) & "%" Edited September 10, 2013 at 07:46 PM by williamjda
nelsonr Posted September 10, 2013 at 08:23 PM Report #524030 Posted September 10, 2013 at 08:23 PM Viste a função dada pelo jpaulino? Ficavas com o código mais limpo
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now