HotDocs does not have a formatting option to spell out the fractional portion of a number (e.g. "one half" or "two-thirds"). This premium computation will. Examples: "four and one half," "four and one fourth," "four and seven eighths," etc.
The one caveat is that the computation must take the number and its fraction from a text string or variable, since a number value does not contain a formatted fraction. To explain, the computation needs to see a fraction (1/2, 3/4, etc.), whereas a number variable contains a decimal (.5, .75, etc.). If you would like to have a decimal (.5) spelled out as a fraction ("one half"), use this computation in conjunction with Computation #0116: Smarter Fraction Formatting. Computation #0116 will format your decimal number as a fraction which can then be fed into this computation.
• • • • • • •
"" // Has fractional portion IF FractionStr-t CONTAINS "/" // Integer portion SET Temp-n TO POSITION( FractionStr-t, " " ) IF Temp-n > 0 FORMAT( INTEGER( FIRST( FractionStr-t, Temp-n - 1 )) , "nine" ) + " and " END IF // Fractional portion SET Temp-t TO LAST( FractionStr-t, LENGTH( FractionStr-t ) - Temp-n ) IF Temp-t = "1/2" RESULT + "one half" ELSE // Numerator SET Temp-n TO POSITION( Temp-t, "/" ) RESULT + FORMAT( INTEGER( FIRST( Temp-t, Temp-n - 1 )) , "nine" ) // Does denominator need to be plural? IF FIRST( Temp-t, Temp-n - 1 ) = "1" SET Temp-b TO FALSE ELSE SET Temp-b TO TRUE END IF // Denominator RESULT + " " + FORMAT( INTEGER( LAST( Temp-t, LENGTH( Temp-t ) - Temp-n )) , "ninth" ) IF Temp-b RESULT + "s" END IF END IF // Has no fractional portion ELSE FORMAT( INTEGER( FractionStr-t ) , "nine" ) END IF
The computation parses the string into an integer portion, numerator portion, and denominator portion, and then converts each into a numerical value and formats it appropriately. The parts are reassembled, and a string is returned with the formatting "nine and two-thirds."
See also, Computation #0051: Format a Number as "nine point seven five", #0062: "All (100%)", #0116: (Even) Smarter Fraction Formatting, #0150: Decimal Formatter.
This template has everything you need set up and configured for you. It will work as-is, or can be adapted to your variable and dialog names. It contains: 1) sample Word and WordPerfect templates (or an Automator form) to demonstrate an implementation of the computation, 2) a component file containing the computation and all supporting dialogs and variables, and 3) instructions for adapting the computation for your use.