设置数字格式以分隔千位值(例如 12000000 将变为 12 000 000)

lis*_*isu 3 lua numbers currency

在lua中,我想格式化一个整数(或浮点数),以用空格(或逗号,如美国)分隔每三个小数位,因此例如数字120000010将显示为120 000 010或120,000,010

我已经找到了这个,但是有没有办法使用 string.format 或任何其他不涉及自定义实现的方法来实现此目的?

Eta*_*ner 5

printf(和朋友)可以使用(根据手册页)SUSv2格式标志来做到这一点'

所以printf "%'d\n" 1000000输出,1,000,000但 lua 似乎不支持将其传递给系统printf调用。

为了向那些对我投反对票的人澄清这个答案。这里的答案是“否”。为此使用的唯一方法string.format是使用该标志,如所示,lua 不会通过该标志。因此,据我所知,如果没有自定义解决方案(例如OP问题中链接的解决方案),就无法做到这一点。

  • lua 限制了可以传递到系统的标志。我相信可以提高可移植性并防止不合格的系统库导致意外崩溃。 (2认同)