将数字格式化为千位分隔符形式(例如,12000000将变成12 000 000)。

3
在lua中,我想要将整数(或浮点数)的每三个小数位用空格(或逗号,如美国)分隔格式化,因此例如数字120000010将呈现为 120 000 010 或 120,000,010
我已经找到了this,但是否有一种使用string.format或任何其他不涉及自定义实现的方法来实现这一点?
1个回答

5

printf(及其相关函数)使用(man手册中)格式标志SUSv2',可以实现该功能。

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

为了澄清对于那些对我进行负评的人,这里的答案是否定的。唯一使用string.format实现此功能的方法是使用上述标志,而如上所述,lua不会将其传递。因此,我不知道有没有其他的方法来完成这个功能,除非使用OP问题中提供的类似的自定义解决方案。


是的,我看到了,但正如你所说 - 它似乎不适用于lua。 - lisu
2
Lua限制了可以传递给系统的标志。我相信这是为了增加可移植性,并防止非符合系统库导致的意外崩溃。 - Etan Reisner
1
我之前不曾注意到 %d 标志。 - hjpotter92

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接