ARREDONDAR DECIMAIS
no vb existe alguma função interna que Arredonde numeros do Tipo:
103,83 para 103,85
ou
103,82 para 103,80
ou
103,86 para 103,90
existe alguma funcao interna ou externa ?
103,83 para 103,85
ou
103,82 para 103,80
ou
103,86 para 103,90
existe alguma funcao interna ou externa ?
Clayton,
O VB tem a função Round().
Mas, não conheço nenhuma função que faça arredondamento para números decimais intermediários, como no seu primeiro exemplo: 103, 83 para 103,85. Nesta caso, a função Round(103.83, 1) devolveria 103,8. Se precisar desse tipo de arredondamento, têm-se que desenvolver uma função propria.
O VB tem a função Round().
Mas, não conheço nenhuma função que faça arredondamento para números decimais intermediários, como no seu primeiro exemplo: 103, 83 para 103,85. Nesta caso, a função Round(103.83, 1) devolveria 103,8. Se precisar desse tipo de arredondamento, têm-se que desenvolver uma função propria.
Segue um exemplo, não sei se é o ideal, mas funciona
Sub a()
Dim a As Double
a = 100.32
If CInt(Right(a, 1)) >= 5 Then
a = Format(Round(a, 1), "0.00")
ElseIf CInt(Right(a, 1)) >= 3 Then
a = a + (0.05 - (CInt(Right(a, 1)) / 100))
Else
a = a - (CInt(Right(a, 1)) / 100)
End If
MsgBox Format(a, "0.00")
End Sub

Sub a()
Dim a As Double
a = 100.32
If CInt(Right(a, 1)) >= 5 Then
a = Format(Round(a, 1), "0.00")
ElseIf CInt(Right(a, 1)) >= 3 Then
a = a + (0.05 - (CInt(Right(a, 1)) / 100))
Else
a = a - (CInt(Right(a, 1)) / 100)
End If
MsgBox Format(a, "0.00")
End Sub

Clayton assim funciona. Coloque no lostfocus do text ou em qq outro lugar e teste.
Text1.Text = Format(Text1.Text, "#0")
Text1.Text = Format(Text1.Text, "#0")
blz brigado a todos
RxGomes -- Vou usar ela
RxGomes -- Vou usar ela
Só um comentario em cima da função
caso demais usuarios queiram usar
alterar de
Para:
De
Para
e só para garantir coloque na primeira linha da função
Agradeçam tb ao nosso amigo RxGomes, por ter postado essa função
[S20][S20][S20][S20][S20][S20]
caso demais usuarios queiram usar
alterar de
If CInt(Right(a, 1)) >= 5 Then Para:
If CInt(Right(a, 1)) >= 6 Then Citação:pois se não qdo um Numero Decimar terminar em 5 será arredondado para ZERO
De
Dim a As Double Para
Dim a As String Citação:Caso vc passe o valor por Parametro ex: vvc ira passar 10,10
a funcao entendera q o ultimo digito é 1 e arredondará para baixo , sendo q na verdade o ultimo digito é ZERO q tá oculto
e só para garantir coloque na primeira linha da função
a = Format(a, "0.00") Citação:só para garantir q irá trabalhar com 2 casas decimais
Agradeçam tb ao nosso amigo RxGomes, por ter postado essa função
[S20][S20][S20][S20][S20][S20]
Tópico encerrado , respostas não são mais permitidas