Hola como están fijense que tengo una función que me convierte decimales a fracción, la cosa es que no me lo convierte bien, dado que si tengo 1.33333 la conversión me muestra 1 333/1000 y el número correcto es 4/3 por lo cual yo quisieran que me dieran su opinion y me dijeran en como puedo mejorar el código para que me despliegue los datos correctamente.
Código Código de Fracción VB.NET:
Ver originalPublic Function ConvFraccion(ByVal Numero As Decimal) As String
Dim Numerador, Denominador, Entero As Integer
Dim Simplificar As Boolean
Entero = Decimal.Truncate(Numero)
Numerador = (Numero - Entero) * 100000
Denominador = 100000
If Numero - Entero = 0 Then
ConvFraccion = CStr(Entero)
Else
Simplificar = True
Do While Simplificar
If Numerador Mod 2 = 0 And Denominador Mod 2 = 0 Then
Numerador = Numerador / 2
Denominador = Denominador / 2
Else
If Numerador Mod 3 = 0 And Denominador Mod 3 = 0 Then
Numerador = Numerador / 3
Denominador = Denominador / 3
Else
If Numerador Mod 5 = 0 And Denominador Mod 5 = 0 Then
Numerador = Numerador / 5
Denominador = Denominador / 5
Else
If Numerador Mod 7 = 0 And Denominador Mod 7 = 0 Then
Numerador = Numerador / 7
Denominador = Denominador / 7
Else
If Numerador Mod 13 = 0 And Denominador Mod 13 = 0 Then
Numerador = Numerador / 13
Denominador = Denominador / 13
Else
Simplificar = False
End If
End If
End If
End If
End If
Loop
If Entero <> 0 Then
ConvFraccion = CStr(Entero) + " " + CStr(Numerador) + "/" + CStr(Denominador)
Else
ConvFraccion = CStr(Numerador) + "/" + CStr(Denominador)
End If
End If
End Function