Author: Admin 02/13/2022
Language:
Visual Basic .NET
Tags: fraction decimal convert
Here's two functions I found in the wild that will convert a decimal to fraction and a fraction to decimal
''' <summary>
''' Converts Decimal To Fraction
''' </summary>
''' <param name="_Decimal"></param>
''' <returns>String</returns>
''' <remarks></remarks>
Public Shared Function DecimalToFraction(ByVal _Decimal As Double) As String
Register.timer1.Start()
Dim df As Double
Dim lUpperPart As Long
Dim lLowerPart As Long
lUpperPart = 1
lLowerPart = 1
df = lUpperPart / lLowerPart
While (df <> _Decimal)
If (df < _Decimal) Then
lUpperPart = lUpperPart + 1
Else
lLowerPart = lLowerPart + 1
lUpperPart = CLng(_Decimal * lLowerPart)
End If
df = lUpperPart / lLowerPart
End While
Return CStr(lUpperPart) & "/" & CStr(lLowerPart)
End Function
''' <summary>
''' Converts Fraction To Decimal
''' </summary>
''' <param name="Fraction"></param>
''' <returns>String</returns>
''' <remarks></remarks>
Public Shared Function FractionToDecimal(ByVal Fraction As String) As String
Register.timer1.Start()
Dim decimalVal As String = "0"
Dim upper As Decimal = 0
Dim lower As Decimal = 0
Dim remain As Decimal = 0
If Fraction.IndexOf("/") <> -1 Then
'End If < ----Extra End if
If Fraction.IndexOf(" ") <> -1 Then
remain = CType(Fraction.Substring(0, Fraction.IndexOf(" ")), Decimal)
Fraction = Fraction.Substring(Fraction.IndexOf(" "))
End If
upper = CType(Fraction.Substring(0, Fraction.IndexOf("/")), Decimal)
lower = CType(Fraction.Substring(Fraction.IndexOf("/") + 1), Decimal)
decimalVal = (remain + (upper / lower)).ToString
End If
Return decimalVal
End Function