Autor Tema: Aproximar decimales  (Leído 3002 veces)

0 Usuarios y 1 Visitante están viendo este tema.

javierjava

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +6/-0
    • Ver Perfil
Aproximar decimales
« en: Agosto 09, 2012, 06:49:31 pm »
Que tal alguien me podría echar una mano de cómo redondear decimales  de la siguiente manera
De 0.01 a 0.24 que aproxime a 25 ahora si es 0.26 a 0.49 que aproxime a 0.50 de 0.51 a 0.74 que sea 0.75 de 0.76 que sea 1.00

Gracias   ;D



cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Aproximar decimales
« Respuesta #1 en: Agosto 09, 2012, 08:37:55 pm »
Arme una funcion para redondear de manera arbitraria, podes redondear como quieras como por ejemplo cada 0.25 (cuartos) o podria ser cualquier cosa como ser 0.2 (quintos)

Código: [Seleccionar]
Private Sub Form_Load()
    Debug.Print RoundArbitrary(1.19, 0.25)
End Sub

Private Function RoundArbitrary(ByVal dVal As Double, _
    Optional ByVal dAproximation As Double = 0.25) As Double
    RoundArbitrary = Round(((dVal / dAproximation) + 0.5)) * dAproximation
End Function

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Aproximar decimales
« Respuesta #2 en: Agosto 09, 2012, 09:15:10 pm »

Aca hay otro por si te sirve.

Código: (VB) [Seleccionar]
Public Function Redondear(n1 As Double, n2 As Long) As Double
    Dim t1 As Double
    t1 = (n1 * (10 ^ (n2))) - Int(n1 * (10 ^ (n2)))
    If t1 >= 0.5 Then
    ' Debug.Print "sumamos"
    Redondear = (Int(n1 * (10 ^ (n2))) + 1) / (10 ^ (n2))
    Else
    ' Debug.Print "restamos"
    Redondear = Int(n1 * (10 ^ (n2))) / (10 ^ (n2))
    End If
End Function

Private Sub Command1_Click()
    Debug.Print Redondear(10.415, 2)
End Sub
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

javierjava

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +6/-0
    • Ver Perfil
Re:Aproximar decimales
« Respuesta #3 en: Agosto 09, 2012, 11:28:59 pm »
Que bien justo lo que necesito

gracias cobein  y E N T E R