Wie entfernt man führende Nullen in einer Zahl?

Wie entfernt man führende Nullen in einer Zahl?

Ich versuche, die Benutzereingabe (einen Zahlenparameter) auf führende Nullen zu prüfen und diese zu entfernen. Ich frage mich, ob ein solcher Befehl von LaTeX2eoder von einer der Engines ( pdftex, xetex) bereitgestellt wird.

Antwort1

\number

Siehe egreg'sKommentar, für die einfachste Lösung für ganze Zahlen im Bereich -2147483647 bis 2147483647:

\number000123⌴
\number-000456⌴

Ergebnis: 123 und -456

Das mit gekennzeichnete Leerzeichen beendet die Auswertung der Zahl und verhindert Unfälle, wenn im normalen Text Ziffern folgen.

Diese Lösung ist erweiterbar und kann beispielsweise innerhalb von \csname, \label, , verwendet werden .\typeout

Paketbigintcalc

Dieses Paket bietet eine erweiterbare Methode zum Entfernen führender Nullen aus beliebig großen Ganzzahlen. Aus der Dokumentation:

\bigintcalcNum {⟨x⟩}

Das Makro \bigintcalcNumkonvertiert sein Argument in eine normalisierte Ganzzahl ohne unnötige führende Nullen oder Vorzeichen. Das Ergebnis entspricht dem regulären Ausdruck:

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

Beispiel:

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

Ergebnis: 123456789123456789123456789 und -123456789123456789123456789

Das Makro ist erweiterbar, das Paket kann mit vielen TeX-Varianten verwendet werden (LaTeX, Plain TeX, iniTeX, ...)

Paketsiunitx

Wenn die Nummer ausgedruckt werden soll, siunitxbietet das Paket zahlreiche Möglichkeiten, die Nummer zu formatieren. Standardmäßig werden führende Nullen entfernt:

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

Ergebnis: 123; -456

verwandte Informationen