CONVERTER STRING

GUIMORAES 07/03/2012 10:35:08
#396596
Olá pessoal.
Bom dia!
Bom, estou com o seguinte problema, tenho um calculo que está em uma String, por exemplo.
“123+123”
Porem sei que este valor não será calculado, e será exibido da mesma forma que apresentei em cima.
Já tentei converter para Decimal, mas sem sucesso.
Vou dar um exemplo mais pratico que estará em anexo.
Preciso fazer desta forma, pois eu estou salvando uma formula no banco de dados, e depois converto a formula em valores, porem não consigo realizar o calculo.
Está formula pode agregar varias operações como:
[Ô]276,05 + (276,05 * 30 / 100)[Ô]
Preciso retornar esta String em um valor calculado, que seria: 358,86.

Alguém tem uma dica?
Abraços.
LUCASVAZ 07/03/2012 10:42:35
#396598
Já tentou salvar em uma variavel do tipo integer?
LUCASVAZ 07/03/2012 10:44:04
#396599
Isso aqui pode te ajudar tmb:

http://www.macoratti.net/vbn_cast.htm
GUIMORAES 07/03/2012 10:58:03
#396602
Então, se eu converter para inteiro, os valores que contem casas decimais serão inutilizados.
Dei uma olhada no tópico do macoratti, porem na aplicação do exemplo, não tive sucesso.

Obrigado pela ajuda.

Abraços
LUCASVAZ 07/03/2012 11:00:10
#396604
Cria a variavel como Float ou Decimal ou Double se for o caso
LUCASVAZ 07/03/2012 11:02:46
#396605
Estou analisando seu código aqui, só um momento.
PROGRAMADORVB6 07/03/2012 11:07:32
#396607
Olá
Tenta isto :
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Label1.Text = [Ô]0,00[Ô]
End Sub

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Label1.Text = Val(Me.TextBox1.Text) + Val(Me.TextBox2.Text)
End Sub

Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Label1.Text = Val(Me.TextBox1.Text) - Val(Me.TextBox2.Text)
End Sub

Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
Label1.Text = Val(Me.TextBox1.Text) / Val(Me.TextBox2.Text)
End Sub

Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
Label1.Text = Val(Me.TextBox1.Text) * Val(Me.TextBox2.Text)
End Sub
End Class
LUCASVAZ 07/03/2012 11:12:05
#396610
Fiz assim com seu código mesmo, ve o que vc acha depois é só desenvolver as outras funções...


GUIMORAES 07/03/2012 11:18:51
#396611
Reformulei o meu código, para que possamos entender melhor.
Eu estou utilizando uma formula, que é uma String.

Olhem o exemplo anexado para entender melhor.

Obrigado.
ROBIU 07/03/2012 12:29:29
#396616
Resposta escolhida
Essa tarefa é simples usando o Windows Script Control. Veja esse tutorial:
VB.NET: Calculando Expressões Matemáticas

O separador decimal é o ponto (.), então devemos trocar a vírgula pelo ponto antes de fazer o cálculo. Exemplo:

   Dim Formula As New MSScriptControl.ScriptControl
Formula.Language = [Ô]VBScript[Ô]
MsgBox(Formula.Eval(([Ô]276,05 + (276,05 * 30 / 100)[Ô]).ToString.Replace([Ô],[Ô], [Ô].[Ô])))
GUIMORAES 07/03/2012 14:54:37
#396624
Olá Pessoal, Resolvi utilizando um exemplo que encontrei no site do macoratti.

Roberto, consegui resolver o problema graças a seu post, ele não me ajudou muito(não deu para usar a referência COM, pois dá erro ao executar.), mas pesquisei algo relacionado e encontrei a solução.
Agradeço a todos que contribuiram, pois as informações foram válidas para conseguir montar o quebra cabeça.

estou disponibilizando o exemplo com a solução, caso alguem se interesse.

Abraços à todos.

att,

Guilherme.
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas