Go Premium for a chance to win a PS4. Enter to Win

x
Solved

# FM - Percent to Text Custom Function Off

Posted on 2014-02-06
Medium Priority
359 Views
Below is a PercenttoText custom function that I believe I adapted from a CurrencytoText function.  However, it does not display correctly when the 100ths digit is 0 as follows.  Notice it says 7/100 instead of 70/100.  I thought I found the problem but was wrong.  See formula below.  Thanks for your help; I know this is easy for many of you, but I get lost in too much detail.

The Tenant agrees to pay an amount equal to Nine and 7/100 (9.7%) percent of the cost of snow and ice removal.

If ( FIELD = 0; "" ;

Choose ( Int ( Mod ( FIELD;10^3 ) / 100 ) ; ""; "One Hundred "; "Two
Hundred "; "Three Hundred "; "Four Hundred "; "Five Hundred "; "Six
Hundred "; "Seven Hundred "; "Eight Hundred "; "Nine Hundred " )

& Case ( Int ( Mod ( FIELD;10^3 ) / 100 ) > 0 and Int ( FIELD / 10 ) > 0; "and " ; "" )

&

If ( Int ( Mod ( FIELD;100 ) / 10 ) = 1 ;

Choose ( Int ( Mod ( FIELD;10 ) ) ; "Ten"; "Eleven"; "Twelve";
"Thirteen"; "Fourteen"; "Fifteen"; "Sixteen"; "Seventeen";
"Eighteen"; "Nineteen" ) ;
Choose ( Int ( Mod ( FIELD;100 ) / 10 ) ; "" ; "" ; "Twenty"; "Thirty";
"Forty"; "Fifty"; "Sixty"; "Seventy"; "Eighty"; "Ninety" ) &
If ( Int ( Mod ( FIELD;100 ) / 10 ) > 0 ;  "-" ; "" ) &
Choose ( Int ( Mod ( FIELD;10 ) ) ; ""; "One"; "Two"; "Three"; "Four"; "Five"; "Six"; "Seven"; "Eight"; "Nine" ) )

&

If ( Mod ( FIELD; 1 ) and Int ( FIELD ) ;" and ";"" )

&

Case ( Mod ( Int ( FIELD*10 ) ; 10 ) = 1;
Choose ( Mod ( Int ( FIELD*100 ) ; 10 ) ; "10"; "11"; "12";
"13"; "14"; "15"; "16"; "17"; "18"; "19" ) ;
Mod ( Int ( FIELD*10 ) ; 10 )  >  1 ;
Choose ( Mod ( Int ( FIELD*10 ) ; 10 ) ; ""; ""; "2"; "3";
"4"; "5"; "6"; "7"; "8"; "9" )
&
Choose ( Mod ( Int ( FIELD*100 ) ; 10 ) ; ""; "1"; "2"; "3";
"4"; "5"; "6"; "7"; "8"; "9" ) ;
Mod ( Int ( FIELD*10 ) ; 10 )  < 1 ;
Choose ( Mod ( Int ( FIELD*10 ) ; 10 ) ; ""; ""; "2"; "3";
"4"; "5"; "6"; "7"; "8"; "9" )
& If ( Int ( Mod ( FIELD;100 ) / 100 ) > 0 ;  "0" ; "" ) &
Choose ( Mod ( Int ( FIELD*100 ) ; 10 ) ; ""; "1"; "2"; "3";
"4"; "5"; "6"; "7"; "8"; "9" ) ;

)

&

Case ( Mod ( FIELD; 1 )  >  0; "/100 (" & FIELD & "%)" ; Mod ( FIELD; 1 ) = 0; " (" & FIELD & "%)" ; "" )
& " percent"

)
0
Question by:rvfowler2
• 2
• 2

LVL 25

Accepted Solution

Will Loving earned 2000 total points
ID: 39840015
The function isn't particularly efficient on the fraction part. I would probably take the last section that deals with the fraction with something like this:

Right( "00" & Mod( Int( Start amount *100 ) ; 100 ) ; 2 )

This tests out correctly.
Decimal-Test.fmp12
0

LVL 2

Author Comment

ID: 39840193
Worked perfectly, thanks.  You're right. very inefficient.  will have to look at the rest of it because it uses the same format.
0

LVL 25

Expert Comment

ID: 39840246
Actually, the translation to text section is probably OK because the words are unique and not easily calculable the way numbers are. You could take out the "hundred" from each choice in the first section and add it at the end to shorten it up, but that's all I can see right now.
0

LVL 2

Author Comment

ID: 39840255
Yes, I see what you mean.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Having just upgraded from Filemaker 11 to Filemaker 12 over the weekend, we thought we would add some tips for others making the same move.  In general, our installation went without incident. Please note that this is not a replacement for Chapter 5…
In light of the WannaCry ransomware attack that affected millions of Windows machines, you might wonder if your Mac needs protecting. Yes, it does and here is how to do it.
Users will learn how to set proper sequence settings, scale images, paste attributes, add transitions, fades, and music. Open up Final Cut Pro 7 and Create a new Project: Set the Sequence Settings. a) Click File > Easy Setup > Format > Apple ProRe…
CodeTwo Sync for iCloud (http://www.codetwo.com/sync-for-icloud?sts=6554) automatically synchronizes your Outlook 2016, 2013, 2010 or 2007 folders with iCloud folders available via iCloud Control Panel. This lets you automatically sync them with…
###### Suggested Courses
Course of the Month10 days, 11 hours left to enroll