+ Reply to Thread
Results 1 to 2 of 2

Inputbox Convert Millimeters to Feet and Inches

  1. #1
    RShow
    Guest

    Inputbox Convert Millimeters to Feet and Inches

    Greetings,
    I posted here earlier and had a wonderful response. Thank you Harold. That
    code did the trick.
    New Scenerio:
    How can you convert Millimeters from an input box and show the values
    broken out among four textboxes.
    The four textboxes are labeled Feet, Inches, Top Fraction, and Bottom
    Fraction, respectfully.

    1669.598 MM in textbox should convert to 5' 5 1/2 " (I'm pretty sure
    that's correct)
    Textbox Feet = 5
    Textbox Inches = 5
    Textbox Top Fraction = 1
    Textbox Bottom Fraction = 2

    Any help is greatly appreciated.
    Thank you for your time.






  2. #2
    Nick Hebb
    Guest

    Re: Inputbox Convert Millimeters to Feet and Inches

    I created a little form with txtMM as the input and txtFT, txtIn,
    txtNumerator (aka top fraction), and txtDenominator (aka bottom
    fraction) as the outputs. The following is the conversion code (using a
    command button - cmdCalc) to drive it:

    Private Sub cmdCalc_Click()

    Const CONV_FACTOR As Double = 304.8 'mm to ft
    Const PROXIMITY As Double = 0.1
    Const MAX_ITERATIONS As Integer = 1000

    Dim mm As Double
    Dim feet As Double
    Dim inches As Double
    Dim numerator As Double
    Dim denominator As Integer
    Dim remainder As Double

    If Not IsNumeric(Me.txtMM) Then
    MsgBox "Error"
    Exit Sub
    End If

    mm = CDbl(Me.txtMM)
    feet = mm / CONV_FACTOR
    Me.txtFt = Int(feet)

    remainder = feet - CInt(feet)
    inches = remainder * 12
    Me.txtIn = Int(inches)

    remainder = inches - Int(inches)
    denominator = 1
    Do
    denominator = denominator + 1
    numerator = remainder * denominator
    Loop While Abs(numerator - Round(numerator, 0)) > PROXIMITY _
    And (denominator <= MAX_ITERATIONS)

    If denominator = MAX_ITERATIONS Then
    MsgBox "Cannot calculate to desired proximity"
    Else
    Me.txtNumerator = CInt(numerator)
    Me.txtDenominator = denominator
    End If

    End Sub

    The PROXIMITY value is how close you want the numerator to be to a
    whole number. The smaller the number, the more funky (but more
    accurate) results you'll get. The MAX_ITERATIONS is the maximum number
    of times you want the loop to run.

    I get 5' 5-3/4", which I verified as correct.


    ----
    Nick Hebb
    BreezeTree Software
    http://www.breezetree.com


+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1