¿Cómo deshacerse de los ceros a la izquierda en un número?

¿Cómo deshacerse de los ceros a la izquierda en un número?

Estoy tratando de verificar la entrada del usuario (un parámetro numérico) en busca de ceros a la izquierda y eliminarlos. Me pregunto si dicho comando lo proporciona LaTeX2eo uno de los motores ( pdftex, xetex).

Respuesta1

\number

Ver egregcomentario, para obtener la solución más simple para números enteros en el rango -2147483647 a 2147483647:

\number000123⌴
\number-000456⌴

Resultado: 123 y -456

El espacio marcado con finaliza el análisis del número y evita accidentes si los dígitos siguen en el texto normal.

Esta solución es ampliable y se puede utilizar dentro de \csname, \label, \typeout, por ejemplo.

Paquetebigintcalc

Este paquete proporciona un método ampliable para eliminar ceros a la izquierda de números enteros arbitrariamente grandes. De la documentación:

\bigintcalcNum {⟨x⟩}

Macro \bigintcalcNumconvierte su argumento en un número entero normalizado sin ceros ni signos innecesarios. El resultado coincide con la expresión regular:

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

Ejemplo:

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

Resultado: 123456789123456789123456789 y -123456789123456789123456789

La macro es ampliable, el paquete se puede utilizar con muchas versiones de TeX (LaTeX, Plain TeX, iniTeX, ...)

Paquetesiunitx

Si el número va a imprimirse, el paquete siunitxofrece muchas opciones para formatear el número. De forma predeterminada, se eliminan los ceros a la izquierda:

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

Resultado: 123; -456

información relacionada