Jump to content

Recommended Posts

Posted

Eu criei uma função assim

textbox3.text = (val(textbox1.text) + val(textbox2.text)) /2

Mas acontece que quando eu somo 1.5+1.5 e divido por 2, ele mostra (1,5),ou seja , mostra vírgula no resultado,ao invés de ponto.Oque tem de errado nesse código? quero que ele mostre ponto ao inves de virgula

Posted

o codigo deu certo,mas eu estava pesquisando,e notei que talvez poderia ser o comando VAL,ele que está transformando os pontos em vírgula,sera? quando eu posso usar VAL e quando posso substitui-lo por CDBL?

Posted (edited)

De facto o VB não é muito coerente na questão dos pontos e vírgulas - deve fazer parte do Top10 das questões aqui colocadas.

Em código utiliza-se o ponto, mas na conversão trabalha-se com pontos. Veja-se o output deste código:

MsgBox((1.4).ToString & vbNewLine & _
      Convert.ToSingle("1.4") & vbNewLine & _
      Convert.ToSingle("1,4"))

1,4
14
1,4

Como se pode ver, a conversão entre String e Single (ou outro numérico decimal) envolve vírgulas e não pontos - os pontos são ignorados.

Última nota: reparei que foi utilizado um monte de conversão implícita. O meu conselho é evitarem-na - utilizem sempre que for possível conversão explícita, e recomendo os métodos da classe Convert.

Edited by thoga31

Knowledge is free!

Posted

andei pesquisando mais um pouco, e resolvi. Em divisões o melhor método seria "CDBL(numero) / (outro numero)" já para somar,o melhor é "val(numero) + (outro numero)" isso no meu caso,porque o codigo deve ser adaptado de acordo com a necessidade de cada um. Obrigado pela colaboração de voces. só tenho mais uma dúvida : eu inseri um botao que manda o resultado pra um listbox, ai queria mover esses itens no listbox, e nao estou conseguindo mover o primeiro da lista, para baixo :/ o botao de mover para cima funciona perfeitamente,e esse para mover para baixo,nao move o primeiro da lista,alguem tem uma ideia de onde eu estou errando?

If ListBox1.SelectedIndex > 0 Then
	    If ListBox1.SelectedIndex < ListBox1.Items.Count - 1 Then
		    Dim y = ListBox1.SelectedIndex + 2
		    ListBox1.Items.Insert(y, ListBox1.SelectedItem)
		    ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
		    ListBox1.SelectedIndex = y - 1
	    End If

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.