![Latex 中的除法 - 我得到了错误的值 - 如何正确执行除法](https://linux22.com/image/410115/Latex%20%E4%B8%AD%E7%9A%84%E9%99%A4%E6%B3%95%20-%20%E6%88%91%E5%BE%97%E5%88%B0%E4%BA%86%E9%94%99%E8%AF%AF%E7%9A%84%E5%80%BC%20-%20%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A1%AE%E6%89%A7%E8%A1%8C%E9%99%A4%E6%B3%95.png)
我正在尝试执行除法,有时它可以有效,但有时我会得到意想不到的值。
\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
。
您没有说出对于哪个输入您会得到什么意外值,因此仍然存在您只是没有预料到整数除法的可能性。