CONTROLAR ARREDONDAMENTO
Por exemplo,tenho o numero 145.236, quero arredondar para duas casas, o vb ja manda para 145.24... + eu gostaria que ficasse no 145.23, eu queria controlar até quando ele arredonda para baixo, e depois de quanto para cima.
Em clipper tinha uma função assim, por exemplo, quero que até .6 arredonde para baixo, e de .7 para cima, para o proximo numero positivo.
Em vb tem algo parecido?
Obrigado.
Em clipper tinha uma função assim, por exemplo, quero que até .6 arredonde para baixo, e de .7 para cima, para o proximo numero positivo.
Em vb tem algo parecido?
Obrigado.
Ver se isso ajuda.
Como implementar os procedimentos de arredondamento personalizado
Como implementar os procedimentos de arredondamento personalizado
Eu somo ao numero 0,005 ao numero, depois multiplico por 100, pego a parte inteira do resultado, truncando o resto e divido então por 100 novamente.
Dai 145,236 vira 245,24 e
145,235 vira 145,23
Dai 145,236 vira 245,24 e
145,235 vira 145,23
Amigo, eu não sei se tem função nativa do VB, mais eu tenho uma aqui... da uma olhada, ve se lhe atende:
Public Function Arredondar(Numero As Variant, CasasDecimais As Integer, ParaCimaAPartir As Integer) As Variant
Dim PosVirgula As Integer
Dim QtdCasas As Integer
Dim AntesVirgula As String
Dim DepoisVirgula As String
Dim DepoisVirgulaAux As String
PosVirgula = InStr(1, Numero, ",")
If PosVirgula = 0 Then
Numero = Numero & "," & String(CasasDecimais, "0")
Arredondar = Numero
Exit Function
End If
AntesVirgula = Left(Numero, PosVirgula - 1)
DepoisVirgula = Mid(Numero, PosVirgula + 1, Len(Numero))
QtdCasas = Len(DepoisVirgula)
If QtdCasas <= CasasDecimais Then
DepoisVirgula = DepoisVirgula & String(Abs(CasasDecimais - QtdCasas), "0")
Else
DepoisVirgulaAux = DepoisVirgula
DepoisVirgula = Mid(DepoisVirgulaAux, 1, QtdCasas - 1)
If Val(Mid(DepoisVirgulaAux, CasasDecimais + 1, 1)) >= ParaCimaAPartir Then
DepoisVirgula = Mid(DepoisVirgula, 1, Len(DepoisVirgula) - 1) & Mid(DepoisVirgula, Len(DepoisVirgula), 1) + 1
End If
End If
Arredondar = AntesVirgula & "," & DepoisVirgula
End Function
Tópico encerrado , respostas não são mais permitidas