ERRO DE CALCULO

CHARLESTON10 04/06/2011 16:45:48
#375858
Pessoal estou com um problema de calculo..

Estou fazendo a seguinte operação

Dim valor1,valor2,total as currency

text1.text = [Ô]- R$ 10,00[Ô]
text2.text = [Ô]R$ 40,00[Ô]

valor1 = text1.text
valor2=text2.text

total = format (valor1-valor2,[Ô]currency[Ô])

Esta dando como resultado R$ 50,00
o correto seria R$ 30,00

oq esta errado ?
ALMIRSAFADI 04/06/2011 17:33:25
#375860
Existem maneiras bem fáceis, mas, neste caso você atribuiu un valor negativo ao text1, quando ele vai fazer a operação, ele considera que menos um valor negativo é mais e faz certo a operação, se você atribuir aos texts valores positivos e mandar subtrair ele vai dar R$ 30,00
FILMAN 04/06/2011 17:58:41
#375863
Quando você atribuir o simbolo de [Ô]-[Ô] negativo não subtraia adicione

Dim Valor1, Valor2, Total as Currency

Text1.Text = [Ô]-10,00[Ô]
Text2.Text = [Ô]40,00[Ô]

Valor1 = Text1.Text : Valor2 = Text2.Text

Total = Format(CCur(Valor1) + CCur(Valor2), [Ô]Currency[Ô])
MsgBox Total




Tenta Ai

Obs. Na subtração Deixe os dois TextBox como POSITIVOS ai você SUBTRAI um do OUTRO
WILLVIDAL 04/06/2011 19:11:55
#375865
Acho que essa sua conta era pra dar -50,00 e não 30,00 como você disse.
Olha só: -10 - (+40)= -10-40=-50 (na matemática -com+ fica - neste tipo de operação) , o problema é fazer conta com variável currency, se vc fizer com DOUBLE você vai ver que vai dar -50.
Em meus sistemas eu faço contas com variáveis DOUBLE e depois formato para moeda, nunca da errado.
Valeww....
FILMAN 04/06/2011 20:16:25
#375868
CHARLESTON10 Escrveu:
Citação:

o correto seria R$ 30,00



Portanto o que eu entendi e imagino que é o que ele esta querendo é:

Eu tenho 40,00 e vou Tirar 10,00 então ficaria com 30,00


Ou seja é o valor que ele quer



Ps.
Posso estar enganado. Obrigado
EDERMIR 04/06/2011 22:11:23
#375877
Resposta escolhida
Conforme dito anteriormente, você SUBTRAIR um número negativo faz com que o sistema SOME o valor:

40 - (-10) = 50

Se você quer utilizar a subtração, então faça:

ABS(40) - abs(-10) = 30

O comando ABS traz o número independente do sinal.



Se você quer fazer algo como uma calculadora, então SEMPRE SOME os valores:

40 + -10 = 30
Tópico encerrado , respostas não são mais permitidas