RESULTADO DA SOMA PRECISA TER APENAS 2 DIGITOS

GILBERTOJW 07/03/2013 11:16:03
#420098
Caríssimos tenho 3 textbox.
quantidade * preço e depois * 1,04321
Esse resultado é de : 1835,72
Não pode porque eu já travei o preço com 2 dígitos só, e ficou 12,75 portanto meu total precisaría ser 1836,00 que na verdade é 12,75 vezes 144
minha conta é essa : quantidade * preço e depois * 1,04321 ( neste ponto o preço ainda está 12,22), mas o valor total também precisa travar em 1836,00

Alguém consegue me ajudar ?
GILBERTOJW 08/03/2013 10:01:06
#420153
Vou explicar melhor :
textbox preço : 12,22
textboxquantidade : 144
textboxtotal :1759,68
textboxaumentar eu coloco o seguinte valor : 1,04321
Então multiplico 12,22 por 1,04321 que dará : 12,74803
Colocando a máscara [Ô]##.00[Ô] eu deixo o resultado só com duas cadas decimais : 12,75
Porém o textboxtotal me mostra a conta 12,74803 * 144 dando o resultado : 1.835,71
Não posso . Esse resultado precisa ser 1.836,00 que é o cálculo de 12,75 * 144 e não considerar 12,74803 * 144
Como regularizo isso ?
Se tiver como travar ao invés de apenas usar a máscar, quando eu calcular 12,22 por 1,04321 também resolve.
Aguardo;

GANDA.NICK 08/03/2013 11:31:31
#420161
Resposta escolhida
Olá,


veja se é isso:

Private Sub Command1_Click()
Me.textboxtotal = Format(Format(Me.textboxpreco * Me.textboxaumentar, [Ô]##.00[Ô]) * Me.textboxquantidade, [Ô]##.00[Ô])
End Sub
GILBERTOJW 08/03/2013 12:12:26
#420165
Pessoal veja se alguém me ajuda terminar aqui :
Dim valor2 As Double
Dim valor3 As String
Dim quantoscaractantesvirgula As Integer
valor = DataGridView1.Rows(retorno - 1).Cells(2).Value
valor2 = Math.Round(valor, 2) [ô]12,75
valor = Math.Floor(valor) [ô]12
quantoscaractantesvirgula = Len(valor) [ô]2
valor3 = Split(valor2) DANDO ERRO : [txt-color=#0000f0]VALUE OF TYPE [ô]1-dimensional array of string[ô] cannot be converted to string[/txt-color]
valor = valor & [Ô],[Ô] & valor3(quantoscaractantesvirgula + 1) & valor3(quantoscaractantesvirgula + 2)

Será que corrigindo esse erro ( que eu gostaría que vocÊs me ajudassem) eu consigo obter meu número ?

GANDA NICK CONFORME VOCÊ SUGERIU AINDA NÃO ME TRAZ O RESULTADO ESPERADO. MAS AGRADEÇO;
ANDPAG 08/03/2013 12:22:56
#420167
é isso?

Dim s As String


s = Format((CDbl(12.22) * CDbl(144)) * CDbl(1.04321), [Ô]###,###,##0.00[Ô])

MsgBox s

abs
GILBERTOJW 08/03/2013 16:57:15
#420196
Uso do math.round e math.floor não adiantou também :
Já resolvi :
Quando calculo 12,22 por 1,04321 gera o seguinte resultado : 12,748....., que chamei de novounit
Dim umvalor1() As String = Split(novounit, [Ô],[Ô])
umvalor2 = (umvalor1(0))
umvalor3 = (umvalor1(1))
umvalor4 = Mid(umvalor3, 3, 1)
umvalor5 = Mid(umvalor3, 1, 2)
If umvalor4 < 5 Then
umvalor5 = umvalor5
Else
umvalor5 = umvalor5 + 1
End If
novounit = (umvalor2 & [Ô],[Ô] & umvalor5)
somanova = (Cdbl(TextBox6.Text)) * novounit
Não me traz mas problemas ao calcular a soma unitária do ítem

Abraços aos que compartilharam o problema

Tópico encerrado , respostas não são mais permitidas