User LoL Posted December 2, 2012 at 07:46 PM Report #485460 Posted December 2, 2012 at 07:46 PM 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
NunoDinis Posted December 2, 2012 at 08:00 PM Report #485461 Posted December 2, 2012 at 08:00 PM resultado = (val(textbox1.text) + val(textbox2.text)) /2 resultado.Replace(",", ".") textbox3.text = resultado Não testado, mas à partida dará tudo certo. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
User LoL Posted December 2, 2012 at 08:05 PM Author Report #485463 Posted December 2, 2012 at 08:05 PM 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?
NunoDinis Posted December 2, 2012 at 08:30 PM Report #485469 Posted December 2, 2012 at 08:30 PM Nunca utilizei o CDBL porque nunca precisei de converter para double. Não sou a melhor pessoa para te responder a isso. Contudo, a forma que te propus está correta. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
thoga31 Posted December 2, 2012 at 08:53 PM Report #485473 Posted December 2, 2012 at 08:53 PM (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 December 2, 2012 at 08:54 PM by thoga31 Knowledge is free!
User LoL Posted December 3, 2012 at 12:00 AM Author Report #485505 Posted December 3, 2012 at 12:00 AM 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
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