Ich versuche, eine Division durchzuführen, und manchmal funktioniert es, und manchmal erhalte ich einen unerwarteten Wert.
\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}
Es funktioniert, wenn ich feste Werte verwende:
Es scheint, dass die letzte Zeile \the\numexpr\resultrest/\coeff\relax
das Problem verursacht. Bitte helfen Sie!
Antwort1
Sie haben \extatend
und \resultrest
mit nicht abgeschlossen \numexpr
(kein \relax
) definiert, wenn Sie sie also in einem anderen verwenden \numexpr
, wird der Ausdruck tatsächlich wörtlich eingefügt, Sie können also auswerten, 5-1/2
wann Sie beabsichtigt haben (5-1)/2
. Ich schlage vor, Sie setzen \relax
an das Ende von beiden \extatend
und \resultrest
.
Andere Alternativen bestehen darin, sie einschließlich Klammern zu definieren, oder, wenn Sie nur einen einzigen festen Wert wünschen, sie mit zu definieren \edef
.
Sie sagen nicht, welchen unerwarteten Wert Sie für welche Eingabe erhalten, daher bleibt die Möglichkeit, dass Sie einfach nicht mit der Ganzzahldivision gerechnet haben.