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(无\relax),因此当您在另一个中使用它们时\numexpr,表达式实际上是按字面意思插入的,因此您可以5-1/2在需要时进行评估(5-1)/2。我建议您将和放在\relax末尾。\extatend\resultrest

其他替代方法是使用括号来定义它们,或者如果您只想要一个固定值,则使用来定义它们\edef

您没有说出对于哪个输入您会得到什么意外值,因此仍然存在您只是没有预料到整数除法的可能性。

相关内容