Código de Visual Basic - Redondear un calculo

sin imagen de perfil

Redondear un calculográfica de visualizaciones


Visual Basic

Publicado el 17 de Octubre del 2008 por Luis Emilio
11.594 visualizaciones desde el 17 de Octubre del 2008
Función que permite solucionar problemas a la función round() en el redondeo de decimales. Si a la función round() le das expresiones complejas y combinas tipos de datos como integer, single y double, la función puede fallar.

Ejemplo de utilización:
nValor = redondear(val(txtbase.text)* val(txtporcentaje.txt),2)
en donde el producto val(txtbase.text)* val(txtporcentaje.txt) se rdondea a 2 decimales

Versión 1

Publicado el 17 de Octubre del 2008gráfica de visualizaciones de la versión: Versión 1
11.595 visualizaciones desde el 17 de Octubre del 2008
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Public Function Redondear(nNum As Double, Optional nDec As Integer) As Double
    Dim nEntero     As Double
    Dim nFraccion   As Double
    Dim sMantisa    As String
    Dim sUltima     As String
    Dim sNum        As String
    Dim sAux        As String
    Dim nVal        As Double
 
    Select Case nDec
        Case Is <= 0
            Redondear = Round(nNum, 0)
        Case Else
            nEntero = Fix(nNum)
            nFraccion = nNum - Fix(nNum)
            If nFraccion <> 0 Then
                sNum = Format(nFraccion, "0.000000000000000")
                sAux = Left(sNum, nDec + 1)
                sUltima = Mid(sNum, (nDec + 2), 1)
                sMantisa = Right(sNum, Len(sNum) - (nDec + 2))
                If Val(sMantisa) >= 5000000000000# Then
                    nVal = Val(sUltima) + 1
                    sUltima = CStr(nVal)
                End If
                If Val(sUltima) <> 10 Then
                    sNum = sAux & sUltima
                Else
                    sNum = Left(sAux, 2) & CStr(Val(Right(sAux, 1) + 1))
                End If
                nVal = Val(nEntero) + Val(sNum)
                Redondear = Round(nVal, nDec)
            Else
                Redondear = nNum
            End If
    End Select
End Function



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s1714