Tips and Tricks

Cool Tools
Software tools...

Image Editing
Upscayl 

 Enlarge and enhance images using AI 

   

  

New Page
I use this function to create fractions, it supports a "Precision" that defaults to 32 so you can use 16, 32, 64, etc... if you want.  You use it the same way as MV Fractions.  

 Examples: 

 With 32nd being default Fraction(45.89763) =  45-29/32 

 If i set the 2nd param to a 16th then Fraction((45.89763, 16) = 45-7/8 

 Public Function Fraction(ByVal DecimalNumber As Object, _

   Optional ByVal Precision As Long = 32, _

   Optional ShowDash As Boolean = True, _

   Optional RoundDown As Boolean = False) As String

   Dim GCD, TopNumber, Remainder, WholeNumber, Numerator, Denominator As Integer

 

   If IsNumeric(DecimalNumber) Then

       If RoundDown Then

           DecimalNumber = Math.Floor(CDBL(DecimalNumber) * Precision) / Precision

       Else

           DecimalNumber = CDBL(DecimalNumber)

       End If

     

       WholeNumber = Fix(DecimalNumber)

       Denominator = Precision

       Numerator = Denominator * Math.Abs(DecimalNumber - WholeNumber)

       If (Numerator <> Denominator) And (Numerator > 0) Then

           GCD = Precision

           TopNumber = Numerator

           Do

               Remainder = (GCD Mod TopNumber)

               GCD = TopNumber

               TopNumber = Remainder

           Loop Until Remainder = 0

           Numerator = Numerator \ GCD

           Denominator = Denominator \ GCD

           ' Create and return the fraction

           Fraction = If(DecimalNumber < 0 And WholeNumber = 0, "-", "") & _

                       If(WholeNumber <> 0, CStr(WholeNumber), "") & _

                       If(ShowDash And WholeNumber <> 0, "-", If(WholeNumber <> 0, " ", "")) & _

                       CStr(Numerator) & "/" & CStr(Denominator) & """"

       Else

           If Numerator = Precision Then WholeNumber += 1

           Fraction = CStr(WholeNumber) & """"

       End If

   Else

       Return ""

   End If

End Function