나눗셈을 수행하려고 하는데 때로는 제대로 작동하기도 하고 때로는 예상치 못한 가치를 얻기도 합니다.
\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
및 를 종료되지 않은 (no ) \resultrest
로 정의했으므로 다른 에서 사용할 때 표현식이 문자 그대로 효과적으로 삽입되므로 의도한 시점을 평가할 수 있습니다 . and 의 끝에 두는 것이 좋습니다 .\numexpr
\relax
\numexpr
5-1/2
(5-1)/2
\relax
\extatend
\resultrest
다른 대안은 괄호를 포함하여 정의하는 것입니다. 또는 단일 고정 값만 원하는 경우 를 사용하여 정의합니다 \edef
.
어떤 입력에 대해 어떤 예상치 못한 값을 얻었는지 말하지 않으므로 정수 나누기를 기대하지 않았을 가능성이 남아 있습니다.