Как избавиться от начальных нулей в числе?

Как избавиться от начальных нулей в числе?

Я пытаюсь проверить пользовательский ввод (параметр числа) на наличие ведущих нулей и удалить их. Интересно, предоставляется ли такая команда LaTeX2e, или одним из движков ( pdftex, xetex).

решение1

\number

Смотреть эгрегкомментарий, для простейшего решения для целых чисел в диапазоне от -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

Связанный контент