ConvertFractToNum ( number )
Converts a fraction to a real number.
Average rating: 4.5 (31 votes) Log in to vote
Colin Keefe IT Solutions Consulting, Inc http://itsolutions-inc.com |
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
I've been using Mikhail Edoshin's Fraction() custom function for awhile now - it's great. (see: http://edoshin.skeletonkey.com/)
For a particular application, I needed a method to convert user-entered fractions back into a real number, so I could perform math on it, so I wrote this up to complement Mikhail's function. Feed it a fraction, and it'll do its level best to produce a real number.
There's some room for improvement here in terms of error capture, but much of that could be handled at field-level validation, to prevent malformed fractions from being entered.
Comments
Sam Barnum, 360Works Nov 16, 2010 |
||
This is handy, but doesn't correctly handle fractions without a space (e.g. "1/2"). I've modified it a bit: Let ( [ $number = Trim(number); $integer = LeftWords($number;1); $denominator = Right ( $number ; Length($number)-Position($number; "/";1;1 )); $numerator = Middle ( $number ; Position ( $number ; " "; 1 ; 1 ) ; Position ( $number ; "/"; 1 ; 1 )-Position ( $number ; " "; 1 ; 1 ) ) ]; Case( // no slash, so no fraction PatternCount($number;"/")=0;$number; // no space, so no valid fraction PatternCount($number;" ")=0;$numerator/$denominator; // too many spaces, so no valid fraction PatternCount($number;" ")>1;$number; // - we have a fraction to parse $integer + ($numerator/$denominator) ) ) |
||
Matt, Calgary Aug 16, 2012 |
||
Is there a way to use this with negative fractions? Say I have -2 4/8 right now it returns 2.5 when i would like it to return -2.5 Any help would be appreciated. Thanks! |
||
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.