如何删除数字中的前导零?

如何删除数字中的前导零?

我正在尝试检查用户输入(数字参数)的前导零并将其删除。我想知道LaTeX2e或其中一个引擎(pdftexxetex)是否提供了此类命令。

答案1

\number

查看 egreg 的评论,对于 -2147483647 至 2147483647 范围内的整数,最简单的解为:

\number000123⌴
\number-000456⌴

结果:123 和 -456

标有 的空格结束数字的解析,并防止在正常文本中出现数字时发生意外。

该解决方案可扩展,例如可以在\csname、、、内部使用。\label\typeout

包裹bigintcalc

此包提供了一种可扩展的方法,用于从任意大的整数中删除前导零。摘自文档:

\bigintcalcNum {⟨x⟩}

\bigintcalcNum将其参数转换为规范化的整数,不带不必要的前导零或符号。结果与正则表达式匹配:

0|-?[1-9][0-9]*

例子:

\usepackage{bigintcalc}% plain TeX: \input bigintcalc.sty
...
\bigintcalcNum{000123456789123456789123456789}
\bigintcalcNum{-000123456789123456789123456789}

结果:123456789123456789123456789 和 -123456789123456789123456789

该宏是可扩展的,该包可与多种 TeX 风格一起使用(LaTeX、纯 TeX、iniTeX 等)

包裹siunitx

如果要打印数字,软件包siunitx提供了许多选项来格式化数字。默认情况下,会删除前导零:

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\num{000123}; \num{-000456}
\end{document}

结果:123;-456

相关内容