title: How can I convert a decimal to a fraction?
body: <p>How do I convert a indefinite decimal (i.e. .333333333...)  to a string fraction representation (i.e. "1/3"). I am using VBA and the following is the code I used (i get an overflow error at the line "b = a Mod b":</p>
  
  <pre><code>Function GetFraction(ByVal Num As Double) As String
  
      If Num = 0# Then
          GetFraction = "None"
      Else
          Dim WholeNumber As Integer
          Dim DecimalNumber As Double
          Dim Numerator As Double
          Dim Denomenator As Double
          Dim a, b, t As Double
  
          WholeNumber = Fix(Num)
          DecimalNumber = Num - Fix(Num)
          Numerator = DecimalNumber * 10 ^ (Len(CStr(DecimalNumber)) - 2)
          Denomenator = 10 ^ (Len(CStr(DecimalNumber)) - 2)
          If Numerator = 0 Then
              GetFraction = WholeNumber
          Else
              a = Numerator
              b = Denomenator
              t = 0
  
              While b &lt;&gt; 0
                  t = b
                  b = a Mod b
                  a = t
              Wend
              If WholeNumber = 0 Then
                  GetFraction = CStr(Numerator / a) &amp; "/" &amp; CStr(Denomenator / a)
              Else
                  GetFraction = CStr(WholeNumber) &amp; " " &amp; CStr(Numerator / a) &amp; "/" &amp; CStr(Denomenator / a)
              End If
          End If
      End If
  End Function
  </code></pre>