This task is about expressing numbers with an attached (abutted) suffix multiplier(s), &nbsp; the suffix(es) could be:
::* &nbsp; an alphabetic (named) multiplier which could be abbreviated
::* &nbsp; &nbsp;metric&nbsp; multiplier(s) which can be specified multiple times
::* &nbsp;      "binary"      multiplier(s) which can be specified multiple times
::* &nbsp; explanation marks (<big>'''!'''</big>) which indicate a factorial or multifactorial


The (decimal) numbers can be expressed generally as:
              {<big>±</big>}   {digits}   {'''.'''}   {digits}
                                  ────── or ──────
              {<big>±</big>}   {digits}   {'''.'''}   {digits}   {'''E''' <small>or</small> '''e'''}   {<big>±</big>}   {digits}

where:
::* &nbsp; numbers won't have embedded blanks &nbsp; (contrary to the expaciated examples above where whitespace was used for readability)
::* &nbsp; this task will only be dealing with decimal numbers, &nbsp; both in the &nbsp; ''mantissa'' &nbsp; and &nbsp; ''exponent''
::* &nbsp; <big>±</big> &nbsp; indicates an optional plus or minus sign &nbsp; (<big>'''+'''</big> &nbsp; <small>or</small> &nbsp; <big>'''-'''</big>)
::* &nbsp; digits are the decimal digits &nbsp; ('''0''' ──► '''9''')
::* &nbsp; the digits can have comma(s) interjected to separate the &nbsp; ''periods'' &nbsp; (thousands) &nbsp; such as: &nbsp; '''12,467,000'''
::* &nbsp; '''.''' &nbsp; is the decimal point, sometimes also called a &nbsp; ''dot''
::* &nbsp; '''e''' &nbsp; or &nbsp; '''E''' &nbsp; denotes the use of decimal exponentiation &nbsp; (a number multiplied by raising ten to some power)


This isn't a pure or perfect definition of the way we express decimal numbers, &nbsp; but it should convey the intent for this task.

The use of the word &nbsp; ''periods'' &nbsp; (thousands) is not meant to confuse, that word (as used above) is what the '''comma''' separates;
<br>the groups of decimal digits are called ''periods'', &nbsp; and in almost all cases, are groups of three decimal digits.

If an &nbsp; '''e''' &nbsp; or &nbsp; '''E''' &nbsp; is specified, there must be a legal number expressed before it, &nbsp; and there must be a legal (exponent) expressed after it.

Also, there must be some digits expressed in all cases, &nbsp; not just a sign and/or decimal point.

Superfluous signs, decimal points, exponent numbers, and zeros &nbsp; need not be preserved.

I.E.: &nbsp; &nbsp; &nbsp;
'''+7''' &nbsp; '''007''' &nbsp; '''7.00''' &nbsp; '''7E-0''' &nbsp; '''7E000''' &nbsp; '''70e-1''' &nbsp; &nbsp; could all be expressed as '''7'''

All numbers to be "expanded" can be assumed to be valid and there won't be a requirement to verify their validity.


;Abbreviated alphabetic suffixes to be supported &nbsp; (where the capital letters signify the minimum abbreation that can be used):
      '''PAIRs'''         multiply the number by  '''2'''         (as in pairs of shoes or pants)
      '''SCOres'''        multiply the number by  '''20'''        (as '''3score''' would be '''60''')
      '''DOZens'''        multiply the number by  '''12'''
      '''GRoss'''         multiply the number by  '''144'''       (twelve dozen)
      '''GREATGRoss'''    multiply the number by  '''1,728'''     (a dozen gross)
      '''GOOGOLs'''       multiply the number by  '''10^100'''    (ten raised to the 100&sup>th</sup> power)


Note that the plurals are supported, even though they're usually used when expressing exact numbers &nbsp; (She has 2 dozen eggs, and dozens of quavas)


;Metric suffixes to be supported &nbsp; (whether or not they're officially sanctioned):
      '''K'''     multiply the number by  '''10^3'''              kilo      (1,000)
      '''M'''     multiply the number by  '''10^6'''              mega      (1,000,000)
      '''G'''     multiply the number by  '''10^9'''              giga      (1,000,000,000)
      '''T'''     multiply the number by  '''10^12'''             tera      (1,000,000,000,000)
      '''P'''     multiply the number by  '''10^15'''             peta      (1,000,000,000,000,000)
      '''E'''     multiply the number by  '''10^18'''             exa       (1,000,000,000,000,000,000)
      '''Z'''     multiply the number by  '''10^21'''             zetta     (1,000,000,000,000,000,000,000)
      '''Y'''     multiply the number by  '''10^24'''             yotta     (1,000,000,000,000,000,000,000,000)
      '''X'''     multiply the number by  '''10^27'''             xenta     (1,000,000,000,000,000,000,000,000,000)
      '''W'''     multiply the number by  '''10^30'''             wekta     (1,000,000,000,000,000,000,000,000,000,000)
      '''V'''     multiply the number by  '''10^33'''             vendeka   (1,000,000,000,000,000,000,000,000,000,000,000)
      '''U'''     multiply the number by  '''10^36'''             udekta    (1,000,000,000,000,000,000,000,000,000,000,000,000)


;Binary suffixes to be supported &nbsp; (whether or not they're officially sanctioned):
      '''Ki'''    multiply the number by  '''2^10'''              kibi      (1,024)
      '''Mi'''    multiply the number by  '''2^20'''              mebi      (1,048,576)
      '''Gi'''    multiply the number by  '''2^30'''              gibi      (1,073,741,824)
      '''Ti'''    multiply the number by  '''2^40'''              tebi      (1,099,571,627,776)
      '''Pi'''    multiply the number by  '''2^50'''              pebi      (1,125,899,906,884,629)
      '''Ei'''    multiply the number by  '''2^60'''              exbi      (1,152,921,504,606,846,976)
      '''Zi'''    multiply the number by  '''2^70'''              zeb1      (1,180,591,620,717,411,303,424)
      '''Yi'''    multiply the number by  '''2^80'''              yobi      (1,208,925,819,614,629,174,706,176)
      '''Xi'''    multiply the number by  '''2^90'''              xebi      (1,237,940,039,285,380,274,899,124,224)
      '''Wi'''    multiply the number by  '''2^100'''             webi      (1,267,650,600,228,229,401,496,703,205,376)
      '''Vi'''    multiply the number by  '''2^110'''             vebi      (1,298,074,214,633,706,907,132,624,082,305,024)
      '''Ui'''    multiply the number by  '''2^120'''             uebi      (1,329,227,995,784,915,872,903,807,060,280,344,576)


All of the metric and binary suffixes can be expressed in &nbsp; lowercase, &nbsp; uppercase, &nbsp; ''or'' &nbsp; mixed case.

All of the metric and binary suffixes can be &nbsp; ''stacked'' &nbsp; (expressed multiple times), &nbsp; and also be intermixed:
<br>I.E.: &nbsp; &nbsp; &nbsp; '''123k''' &nbsp; '''123K''' &nbsp; '''123GKi''' &nbsp; '''12.3GiGG''' &nbsp; '''12.3e-7T''' &nbsp; '''.78E100e'''
 

;Factorial suffixes to be supported:
      '''!'''      compute the (regular) factorial product:   '''5!'''   is  '''5''' &times; '''4''' &times; '''3''' &times; '''2''' &times; '''1'''  =  '''120'''
      '''!!'''     compute the  double   factorial product:   '''8!'''   is  '''8''' &times; '''6''' &times; '''4''' &times; '''2'''      =  '''384'''
      '''!!!'''    compute the  triple   factorial product:   '''8!'''   is  '''8''' &times; '''5''' &times; '''2'''          =   '''80'''
      '''!!!!'''   compute the quadruple factorial product:   '''8!'''   is  '''8''' &times; '''4'''              =   '''32'''
      '''!!!!!'''  compute the quintuple factorial product:   '''8!'''   is  '''8''' &times; '''3'''              =   '''24'''
      ··· the number of factorial symbols that can be specified is to be unlimited &nbsp; (as per what can be entered/typed) ···


Factorial suffixes aren't, of course, the usual type of multipliers, but are used here in a similar vein.


Multifactorials aren't to be confused with &nbsp; ''super─factorials'' &nbsp; &nbsp; where &nbsp; '''(4!)!''' &nbsp; would be &nbsp; '''(24)!'''.



;Task:
::* &nbsp; Using the test cases (below), &nbsp; show the "expanded" numbers here, on this page.
::* &nbsp; For each list, show the input on one line, &nbsp; and also show the output on one line.
::* &nbsp; When showing the input line, keep the spaces (whitespace) and case (capitalizations) as is.
::* &nbsp; For each result (list) displayed on one line, separate each number with two blanks.
::* &nbsp; Add commas to the output numbers were appropriate.


;Test cases:
     2greatGRo   24Gros  288Doz  1,728pairs  172.8SCOre
     1,567      +1.567k    0.1567e-2m
     25.123kK    25.123m   2.5123e-00002G
     25.123kiKI  25.123Mi  2.5123e-00002Gi  +.25123E-7Ei
     -.25123e-34Vikki      2e-77gooGols
     9!   9!!   9!!!   9!!!!   9!!!!!   9!!!!!!   9!!!!!!!   9!!!!!!!!   9!!!!!!!!!

where the last number for the factorials has nine factorial symbols &nbsp; (<big>'''!'''</big>) &nbsp; after the &nbsp; '''9'''



;Related tasks:
* &nbsp; [[Multifactorial]] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (which has a clearer and more succinct definition of multifactorials.)
* &nbsp; [[Factorial]]


{{Template:Strings}}
<br><br>

