RosettaCodeData/Task/Commatizing-numbers/11l/commatizing-numbers.11l
2023-07-01 13:44:08 -04:00

49 lines
1.9 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

F commatize(s, period = 3, sep = ,)
V m = re:(\.[0-9]+|[1-9]([0-9]+)?(\.[0-9]+)?).search(s)
I !m
R s
V match = m.group()
V splits = match.split(.)
V ip = splits[0]
I ip.len > period
V inserted = 0
L(i) ((ip.len - 1) % period + 1 .< ip.len).step(period)
ip = ip[0 .< i + inserted]sepip[i + inserted ..]
inserted += sep.len
I splits.len > 1
V dp = splits[1]
I dp.len > period
L(i) ((dp.len - 1) I/ period * period .< period - 1).step(-period)
dp = dp[0 .< i]sepdp[i..]
ip = .dp
R s[0 .< m.start()]ips[m.end()..]
V tests = [123456789.123456789,
.123456789,
57256.1D-4,
pi=3.14159265358979323846264338327950288419716939937510582097494459231,
The author has two Z$100000000000000 Zimbabwe notes (100 trillion).,
-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.]
print(commatize(tests[0], period' 2, sep' *))
print(commatize(tests[1], period' 3, sep' -))
print(commatize(tests[2], period' 4, sep' __))
print(commatize(tests[3], period' 5, sep' ))
print(commatize(tests[4], sep' .))
L(test) tests[5..]
print(commatize(test))