Деление в Latex - Я получаю неправильные значения - Как правильно выполнить деление

Деление в Latex - Я получаю неправильные значения - Как правильно выполнить деление

Я пытаюсь выполнить деление, и иногда это срабатывает, а иногда я получаю неожиданный результат.

\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}

Это работает, если я использую фиксированные значения:
Кажется, последняя строка, \the\numexpr\resultrest/\coeff\relax похоже, вызывает проблему. Пожалуйста, помогите!

решение1

Вы определили \extatendи \resultrestс незавершенным \numexpr(no \relax), поэтому, когда вы используете их в другом \numexpr, выражение фактически вставляется буквально, поэтому вы можете оценить, 5-1/2когда вы намеревались (5-1)/2. Я предлагаю вам поставить \relaxв конце и то, и \extatendдругое \resultrest.

Другие альтернативы — определить их, включая скобки, или, если вам нужно только одно фиксированное значение, определить их с помощью \edef.

Вы не говорите, какое неожиданное значение вы получаете для каждого входного параметра, поэтому остается вероятность, что вы просто не ожидали целочисленного деления.

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