Wie dividiert man zwei Längen und erhält das Ergebnis als Ganzzahl?

Wie dividiert man zwei Längen und erhält das Ergebnis als Ganzzahl?

Ich habe ein Problem damit, zwei Längen zu dividieren und ein Ergebnis als Ganzzahl zu erhalten. Ich habe versucht, dieses Paket zu verwenden:

\usepackage[nomessages]{fp}

Bei mir hat es nicht wirklich funktioniert. Ich habe es auf verschiedene Arten probiert, aber es hat immer noch nicht funktioniert.

Können Sie mir mit einer alternativen Möglichkeit helfen?

Antwort1

Sie können \numexprund verwenden \dimexpr, aber dies rundet, anstatt abzuschneiden:

\documentclass{article}

\newcommand{\getlengthratio}[2]{%
  \number\numexpr
    \dimexpr#1\relax
     /
    \dimexpr#2\relax
  \relax}

\newcounter{test}

\begin{document}

There are \getlengthratio{\textwidth}{\parindent} parindents in a line

\setcounter{test}{\getlengthratio{\textwidth}{\parindent}}

The same number: \thetest

\end{document}

Ein anderer Ansatz, bei dem Sie zwischen Boden, Decke und Rund wählen können, ist mit expl3:

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\DeclareExpandableDocumentCommand{\getlengthratio}{mm}
 {
  \fp_eval:n { floor ( \dim_to_fp:n { #1 } / \dim_to_fp:n { #2 } , 0 ) }
 }
\ExplSyntaxOff

\newcounter{test}

\begin{document}

There are \getlengthratio{\textwidth}{\parindent} parindents in a line

\setcounter{test}{\getlengthratio{\textwidth}{\parindent}}

The same number: \thetest

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen