如何使用逗号作为千位分隔符显示数字?

如何使用逗号作为千位分隔符显示数字?

我想让 550 万这样的数字以逗号作为千位分隔符显示为“5,500,000”。有没有办法自动完成此操作,而无需手动输入逗号?

答案1

我觉得siunitx包中有此类设施。

\num[group-separator={,}]{1234567890}

应该给你 1,234,567,890

您也可以将其用作包选项,如下所示:\usepackage[group-separator={,}]{siunitx}

请注意,这似乎不适用于旧版本的siunitx

答案2

Seamus 的回答siunitx是正确做法话虽如此,编写一个简单的宏来漂亮地打印数字并不难。

\newcount\ppnum
\newcommand\ppnumber[1]{%
        \ppnum=#1\relax
        \ifnum\ppnum<0
                $-$%
                \ppnum=-\ppnum
        \fi
        \let\pptemp\empty
        \loop\ifnum\ppnum>999
                \count255=\ppnum
                \divide\ppnum by1000
                \count255=\numexpr \count255 - 1000*\ppnum \relax
                \edef\pptemp{,\ifnum\count255<100 0\ifnum\count255<10 0\fi\fi
                             \the\count255 \pptemp}%
        \repeat
        \the\ppnum
        \pptemp
}

我第一次写这个的时候,使用了令牌寄存器而不是\pptemp,但是这需要书写\expandafter\expandafter\expandafter{\expandafter...,这似乎过多了。

编辑:
鉴于我现在必须修复代码中的两个错误,也许我不应该声称做到这一点并不难。=)

答案3

使用http://www.ctan.org/pkg/numprint包装\npthousandsep{,}可能是一种替代方案(在写完另一个答案后发现——墨菲定律!)。

顺便说一句:将数字分组为可以用http://www.ctan.org/pkg/telprint包裹。

答案4

我通常只在我的文档中使用一次,并且不想为一些额外的包烦恼,所以我发现下面的是一个非常有用的技巧:

$50{\small,}000$

相关内容