Commatizing numbers: Difference between revisions

Add Factor
m (added a couple of verbs to first sentence.)
(Add Factor)
Line 304:
$-140,000±100 millions.
6/9/1946 was a good year for some.</pre>
 
=={{header|Factor}}==
{{works with|Factor|0.99 2020-01-23}}
<lang factor>USING: accessors grouping io kernel math regexp sequences
strings unicode ;
 
: first-numeric ( str -- slice ) R/ [1-9][0-9]*/ first-match ;
 
: commatize-number ( numeric-str period sep -- new-str )
[ reverse ] [ group ] [ reverse join reverse ] tri* ;
 
: (commatize) ( text from period sep -- str )
[ cut first-numeric dup >string ] 2dip commatize-number swap
[ from>> ] [ to>> ] [ seq>> snip surround append ] tri ;
 
: commatize* ( text from period sep -- str )
reach [ digit? ] any? [ (commatize) ] [ 3drop ] if ;
 
: commatize ( text -- str ) 0 3 "," commatize* ;
 
"pi=3.14159265358979323846264338327950288419716939937510582097494459231"
5 5 " " commatize* print
"The author has two Z$100000000000000 Zimbabwe notes (100 trillion)."
0 3 "." commatize* print
{
"\"-in Aus$+1411.8millions\""
"===US$0017440 millions=== (in 2000 dollars)"
"123.e8000 is pretty big."
"The land area of the earth is 57268900(29% of the surface) square miles."
"Ain't no numbers in this here words, nohow, no way, Jose."
"James was never known as 0000000007"
"Arthur Eddington wrote: I believe there are 15747724136275002577605653961181555468044717914527116709366231425076185631031296 protons in the universe."
" $-140000±100 millions."
"6/9/1946 was a good year for some."
} [ commatize print ] each</lang>
{{out}}
<pre>
pi=3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59231
The author has two Z$100.000.000.000.000 Zimbabwe notes (100 trillion).
"-in Aus$+1,411.8millions"
===US$0017,440 millions=== (in 2000 dollars)
123.e8000 is pretty big.
The land area of the earth is 57,268,900(29% of the surface) square miles.
Ain't no numbers in this here words, nohow, no way, Jose.
James was never known as 0000000007
Arthur Eddington wrote: I believe there are 15,747,724,136,275,002,577,605,653,961,181,555,468,044,717,914,527,116,709,366,231,425,076,185,631,031,296 protons in the universe.
$-140,000±100 millions.
6/9/1946 was a good year for some.
</pre>
 
=={{header|Go}}==
1,808

edits