Brian Dunning's FileMaker Custom Functions

ConvertFractToNum ( number )

Converts a fraction to a real number.

  Average rating: 4.5 (31 votes) Log in to vote

Colin Keefe   Colin Keefe
IT Solutions Consulting, Inc

Share on Facebook Share on Twitter

  Sample input:
ConvertFractToNum(5 1/2)
  Sample output:

  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:

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.



Sam Barnum   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 ) )

// no slash, so no fraction

// 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   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.


Log in to post comments.


Note: these functions are not guaranteed or supported by Please contact the individual developer with any questions or problems.

Under construction. Email me your wish list for improvements.