ROTINA PARA ARREDONDAR NUMEROS DECIMAIS

USUARIO.EXCLUIDOS 06/09/2007 16:05:05
#234551
Alguém poderia me ajudar, estou precisando de uma rotina
em que um preço seja cadastrado..
Exemplo:
1 PARAFUSO - R$1,02162

Realizou uma venda de 40 parafusos:
R$: 40,8648

E isso arredonde o preço para R$:40,87independente do
número que estaja após o 2º decimal.
USUARIO.EXCLUIDOS 06/09/2007 16:08:23
#234556
dim valor as double

valor = Format(Text1.Text, "##0.00")

Lembrando que ele arredondará para 40,86 pois depois do 6 a um 4
RODRIGOGBGOMES 06/09/2007 16:14:28
#234559
valor = FormatNumber (ValorParafuso,2 ) ', 2 numero de casas decimais
USUARIO.EXCLUIDOS 06/09/2007 16:26:55
#234562
Landos e Rodrigo,

As funções postadas pelos senhores realiza o arredondamento correto, fugindo do que o criador do tópico falou, que ele necessita que sempre arrededonde-se para cima, independente do número da frente.


KAHHKAHKA,

Utilize a função abaixo para formatar os números, creio que vai resolver seu problema!
Public Function Formatar(Valor As Double, CasasDecimais As Long) As Double
If InStr(1, Str(Valor), ".") = 0 Then
Valor = Valor & "," & String(CasasDecimais, "0")
End If

Dim AntVirgula As String
Dim DpsVirgula As String

AntVirgula = Mid(Str(Valor), 1, InStr(1, Str(Valor), ".") - 1)
DpsVirgula = Mid(Str(Valor), InStr(1, Str(Valor), ".") + 1, Len(Str(Valor)))


If Len(DpsVirgula) <= CasasDecimais Then
DpsVirgula = DpsVirgula & String(CasasDecimais - Len(DpsVirgula), "0")
Else
DpsVirgula = Mid(DpsVirgula, 1, CasasDecimais)
DpsVirgula = Trim(Str(Val(DpsVirgula) + 1))
End If

Formatar = CDbl(AntVirgula & "," & DpsVirgula)
End Function

USUARIO.EXCLUIDOS 07/09/2007 05:23:26
#234628

Dim MyVar
dim PI as double
pi = "3,14559"
MyVar = Round(pi, 2) 'MyVar Resultado = 3,15



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