Jump to content

Recommended Posts

Posted

Boa noite,Pessoal!
Eu ja pesquisei na internet,mas apear de existir muita informação sobre o tema,não encontrei nada de que preciso:
mas pelo que eu li não existe nenhum tipo de variável no .Net que faça isso, é algo terei que fazer manualmente.
pelo metodo Math.Round(valor, 2) esta me arredondando o valor no final teria algum outro metodo?
 

Sub Compute()
        Dim i As Double = 0
        Dim j As Double = 0
        j = Val((Val(txtSubTotal.Text) * Val(txtTaxPer.Text)) / 100)
        j = Math.Round(j, 2)
        txtTaxAmount.Text = j
        i = Val(txtSubTotal.Text) + Val(txtTaxAmount.Text)
        i = Math.Round(i, 2)
        txtGrandTotal.Text = i
    End Sub

Posted

Exactamente o que não funciona?

Estive a experimentar este código (semelhante ao seu) e parece-me correcto:

	Public Sub Main()
        Dim taxAmount As Double = 0
        Dim grandTotal As Double = 0
        taxAmount = Val((Val("123") * Val("23")) / 100)
        taxAmount = Math.Round(taxAmount, 2)
        System.Console.WriteLine("taxAmount = " & taxAmount)
        grandTotal = Val("123") + taxAmount
        grandTotal = Math.Round(grandTotal, 2)
        System.Console.WriteLine("grandTotal = " & grandTotal)
	End Sub

taxAmount = 28.29
grandTotal = 151.29
Posted

Não funcionou, mas devia ter funcionado...

Fiz o seguinte teste:

Sub Main()
        'teste 1
        Dim numero As Double
        numero = 3.143456788
        Dim novo_numero As Double
        novo_numero = FormatNumber(numero, 2)
        Console.WriteLine(novo_numero)
  		´teste 2
        Dim imposto As Double
        Dim valor_sem_imposto As Double
        Dim valor_com_imposto As Double
        valor_sem_imposto = 150
        imposto = 23
        valor_com_imposto = valor_sem_imposto + (imposto * valor_sem_imposto / 100)
  		Console.WriteLine(FormatNumber(valor_com_imposto, 2))	
        


        Console.Read()

    End Sub

E funciona bem...

Não te terás enganado em nada?

Aqui a única diferença é que não converti o texto das TextBox para número, porque forneci logo os números. No teu caso só tens que converter o valor das TextBox para número e fica igual.

P.S. Nota que não instanciei logo o valor das variáveis, experimenta fazer o mesmo no teu código

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Posted (edited)

atencao que as variaveis recebem numero variaveis

lembrando que o retorno dessas operaçoes matematicas estao retornando inteiro quero que o sistema retorne valor exato EX: subTotal 145.98

Edited by marioverdini
Posted

Viva,

Não estás a tentar fazer "Val" de caixas de texto, com valores "já formatados" com separadores decimais (idioma/região) do sistema?

	Public Sub Main()
		Dim subTotal As Double = 0
		subTotal = Val("123.45")
        System.Console.WriteLine("subTotal 1 = " & subTotal)
		subTotal = Val("123,45")
        System.Console.WriteLine("subTotal 2 = " & subTotal)
	End Sub

OUTPUT:
subTotal 1 = 123.45
subTotal 2 = 123

No exemplo acima, dependendo da região/país onde corres a tua aplicação, tanto poderia ler "123.45" ou apenas "123".
Nas tuas caixas de texto, tens o separador decimal com "." ou "," ?

Posted

Bem, tomando o teu exemplo e acho que não me enganei nos nomes das variáveis, faz o seguinte no evento do Button_Click onde vais chamar o Sub Compute() chama antes este:

Sub teste_conversao()
        Dim SubTotal, TaxPer, TaxAmount, ValorTotal As Double
        SubTotal = CDbl(Val(txtSubTotal.Text))
        TaxPer = CDbl(Val(txtTaxPer.Text))
        TaxAmount = CDbl(Val(txtTaxAmount.Text))
        ValorTotal = SubTotal + (SubTotal * TaxPer / 100)
        txtGrandTotal.Text = FormatNumber(ValorTotal, 2)
    End Sub

e vê lá se não vai dar o que pretendes

p.s confere se os nomes das textbox estão certos

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

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.