Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

FM - Percent to Text Custom Function Off

Posted on 2014-02-06
4
346 Views
Last Modified: 2014-02-06
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
Comment
Question by:rvfowler2
  • 2
  • 2
4 Comments
 
LVL 25

Accepted Solution

by:
Will Loving earned 500 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

by:rvfowler2
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

by:Will Loving
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

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

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Pop up windows can be a useful feature of any Filemaker database.  Though best used sparingly, they can be employed in a multitude of different ways, for example;  as a splash screen at login, during scripted processes to control user input, as pick…
Yesterday Apple introduced their revolutionary new iOS 5 operating system that claims to be the ultimate mobile technology interface. One of the biggest innovations of the new operating system is the introduction of the iCloud computing network. Thi…
Users will learn how resize a batch of photos from a single command in Photoshop via Photoshop's Image Processor. Open up an Image you'd like to resize in Adobe Photoshop: Adjust the image size according to your preferences. Image > Adjustments > …
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question