Number names/REXX: Difference between revisions
Content added Content deleted
m (Avoid "#" in page titles) |
(added/changed whitespace and comments.) |
||
Line 1: | Line 1: | ||
The '''$SPELL#''' REXX program is included here ──► [[$SPELL.REX|$SPELL#.REX]]. |
The full source of the '''$SPELL#''' REXX program is included here ──► [[$SPELL.REX|$SPELL#.REX]]. |
||
<br>The help for the '''$SPELL#''' REXX program is included here ──► [[$SPELL.HEL|$SPELL#.HEL]]. |
<br>The full help for the '''$SPELL#''' REXX program is included here ──► [[$SPELL.HEL|$SPELL#.HEL]]. |
||
As I understand the solving of any Rosetta Code task, it's OK to use a pre-existing computer language program. |
|||
⚫ | |||
<br>primary task (and optional requirements), but it was taking too much time so I left the program intact. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
This REXX program supports: |
This REXX program supports: |
||
* long and short scale (American and British styles) |
* long and short scale (American and British styles) |
||
* ordinal numbers and cardinal numbers |
* ''ordinal numbers'' and ''cardinal numbers'' |
||
* expressing the number as a |
* expressing the number as a (calendar) ''year'' ('''1975''' would be '''nineteen seventy-five''') |
||
* decimal points ('''6''' is different than '''6.''') |
* decimal points (<big>'''6'''</big> is different than <big>'''6.'''</big>) |
||
* decimal fractions |
* decimal fractions |
||
* numbers with leading zeroes (as well as trailing zeroes) |
* numbers with leading zeroes (as well as trailing zeroes) |
||
* leading signs ('''+''' or '''-''') |
* leading signs (<big>'''+'''</big> or <big>'''-'''</big>) |
||
* exponential notation |
* exponential notation |
||
* currency symbols |
* currency symbols |
||
* adding commas (or whatever) to the output (including blanks) |
* adding commas (or whatever) to the output (including blanks) |
||
* numbers (American) up to 3,000 digits |
* numbers (American) roughly up to 3,000 digits |
||
* numbers (English) up to 6,000 digits |
* numbers (English) roughly up to 6,000 digits |
||
* numbers with metric suffixes, namely: |
* numbers with metric suffixes, namely: |
||
** '''K M G T P E Z Y X W V U''' |
** '''K M G T P E Z Y X W V U''' |
||
Line 34: | Line 36: | ||
** or any suitable abbreviation of the above |
** or any suitable abbreviation of the above |
||
* numbers expressed as a factorial (such as '''100!'''). |
* numbers expressed as a factorial (such as '''100!'''). |
||
* user- |
* user-definable names for: |
||
** signs ('''-6''' could be expressed as '''negatory six''') |
** signs ('''-6''' ''could be'' expressed as '''negatory six''') |
||
** decimal point ('''2.4''' could be expressed as '''two |
** decimal point ('''2.4''' ''could be'' expressed as '''two boink four''') |
||
** power (the power of ten that the number is being raised to) |
** power (the power of ten that the number is being raised to) |
||
** currency symbols |
** currency symbols |
||
Line 42: | Line 44: | ||
** blanks |
** blanks |
||
** a value of zero |
** a value of zero |
||
* numbers may have commas but they aren't |
* numbers may have commas but they aren't enunciated |
||
The program has a pretty hefty prologue which determines (among other things): |
The program has a pretty hefty prologue which determines (among other things): |
||
Line 48: | Line 50: | ||
* the operating system (and maybe the type) |
* the operating system (and maybe the type) |
||
* the name of the REXX program: it's filename, filetype, filemode (or path, if you will) |
* the name of the REXX program: it's filename, filetype, filemode (or path, if you will) |
||
* the access-name to acquire environmental variables |
* the access-name used to acquire environmental variables' values |
||
* if EBCDIC or ASCII system |
* if '''EBCDIC''' or '''ASCII''' system |
||
* which REXX (or KEXX) is being used |
* which REXX (or KEXX) is being used |
||
* the name of the program (command) to clear the terminal screen |
* the name of the program (command) used to clear the terminal screen |
||
* if appropriate, invokes |
* if appropriate, invokes '''$H''' to show the help, logic flow, sample uses, or author. |
||
I'm still working on the program to reduce the amount of names by programmatically generating any amount of number-names (instead of having a fixed amount of names in text form). |
I'm still working on the REXX program to reduce the amount of names by programmatically generating any amount of number-names (instead of having a fixed amount of names in text form). |
||
Also note that there appears not to be a consensus on the names of some numbers: |
Also note that there appears not to be a consensus on the names of some numbers: |
||
Line 63: | Line 65: | ||
* '''tre*''' also named '''tres*''' |
* '''tre*''' also named '''tres*''' |
||
<br>The '''$SPELL#''' REXX program makes use of '''$T''' REXX program which is used to display text and/or write the text to a file. |
<br>The '''$SPELL#''' REXX program makes use of '''$T''' REXX program which is used to display text and/or write the text to a file. |
||
<br>The '''$T''' REXX program is included here ──► [[$T.REX]]. |
<br>The '''$T''' REXX program is included here ──► [[$T.REX]]. |
||
<br>The help for the '''$T''' REXX program is included here ──► [[$T.HEL]]. |
<br>The help for the '''$T''' REXX program is included here ──► [[$T.HEL]]. |
||
<br><br>The '''$SPELL#''' REXX program makes use of '''$ERR''' REXX program which is used to display error messages (via '''$T'''). |
<br><br>The '''$SPELL#''' REXX program makes use of '''$ERR''' REXX program which is used to display error messages (via '''$T'''). |
||
<br>The '''$ERR''' REXX program is included here ──► [[$ERR.REX]]. |
<br>The '''$ERR''' REXX program is included here ──► [[$ERR.REX]]. |
||
<br>The help for the '''$ERR''' REXX program is included here ──► [[$ERR.HEL]]. |
<br>The help for the '''$ERR''' REXX program is included here ──► [[$ERR.HEL]]. |
||
<br><br>Some older REXXes don't have a '''changestr''' |
<br><br>Some older REXXes don't have a '''changestr''' BIF, so one is included here ──► [[CHANGESTR.REX]]. |
||
<br><br> |
<br><br> |
||
==output== |
==output== |
||
Output when using the input of: <tt>373 ordinal</tt> |
Output when using the input of: <tt> 373 ordinal </tt> |
||
three hundred seventy-third |
three hundred seventy-third |
||
Output when using the input of: <tt>373</tt> |
Output when using the input of: <tt> 373 </tt> |
||
three hundred seventy-three |
three hundred seventy-three |
||
Output when using the input of: <tt>+45</tt> |
Output when using the input of: <tt> +45 </tt> |
||
plus forty-five |
plus forty-five |
||
Output when using the input of: <tt>1989 asYear</tt> |
Output when using the input of: <tt> 1989 asYear </tt> |
||
nineteen eighty-nine |
nineteen eighty-nine |
||
Output when using the input of: <tt>-12.79</tt> |
Output when using the input of: <tt> -12.79 </tt> |
||
minus twelve point seven nine |
minus twelve point seven nine |
||
Output when using the input of: <tt>$119.63</tt> |
Output when using the input of: <tt> $119.63 </tt> |
||
one hundred nineteen dollars and sixty-three cents |
one hundred nineteen dollars and sixty-three cents |
||
Output when using the input of: <tt>3456T</tt> |
Output when using the input of: <tt> 3456T </tt> |
||
three quadrillion four hundred fifty-six trillion |
three quadrillion four hundred fifty-six trillion |
||
Output when using the input of: <tt>4Ki</tt> |
Output when using the input of: <tt> 4Ki </tt> |
||
four thousand ninety-six |
four thousand ninety-six |
||
Output when using the input of: <tt>6!</tt> |
Output when using the input of: <tt> 6! </tt> |
||
seven hundred twenty |
seven hundred twenty |
||
Output when using the input of: <tt>10dozen</tt> |
Output when using the input of: <tt> 10dozen </tt> |
||
one hundred twenty |
one hundred twenty |
||
Output when using the input of: <tt>70000000000000...</tt>(3,000 zeroes total) |
Output when using the input of: <tt> 70000000000000... </tt> (3,000 zeroes total) |
||
seven octononagintanongentillion |
seven octononagintanongentillion |