División en Látex -Estoy obteniendo valores incorrectos-Cómo realizar la división correctamente

División en Látex -Estoy obteniendo valores incorrectos-Cómo realizar la división correctamente

Estoy tratando de realizar una división y a veces funciona y otras veces obtengo un valor inesperado.

\documentclass[fleqn]{article}
\usepackage{amsmath}
\usepackage{enumerate}
\usepackage{cancel}
\begin{document}
\newcommand\coeff{5}
\newcommand\addend{13}
\newcommand\result{45}
\newcommand\exaddend{\the\numexpr\addend*\coeff}
\newcommand\resultrest{\the\numexpr\result-\exaddend}
\begin{align*}
        \coeff x+\exaddend&=\result \\
        -\exaddend&=-\exaddend\\
        \coeff x&=\resultrest\\
        \frac{\cancel{\coeff}x}{\cancel{\coeff}}&=\frac{\resultrest}{\coeff}\\
        x&=\boxed{\the\numexpr\resultrest/\coeff\relax}
        \end{align*}\vspace{1em} 
\end{document}

Funciona si uso valores fijos:
parece que la última línea \the\numexpr\resultrest/\coeff\relax parece producir el problema. ¡Por favor ayuda!

Respuesta1

Usted definió \extatendy \resultrestcon sin terminar \numexpr(no \relax), de modo que cuando los use en otro \numexpr, la expresión efectivamente se inserta literalmente, por lo que puede evaluar 5-1/2cuando pretendía (5-1)/2. Te sugiero que pongas \relaxal final de ambos \extatendy \resultrest.

Otras alternativas son definirlos incluyendo paréntesis, o si desea un solo valor fijo, definirlos usando \edef.

No dices qué valor inesperado obtienes para cada entrada, por lo que sigue existiendo la posibilidad de que simplemente no esperabas una división entera.

información relacionada