Como dividir dois comprimentos e obter um resultado inteiro?

Como dividir dois comprimentos e obter um resultado inteiro?

Estou com um problema ao dividir dois comprimentos e obter um resultado como um número inteiro. Eu estava tentando usar este pacote:

\usepackage[nomessages]{fp}

Realmente não funcionou para mim. Eu tentei de várias maneiras, mas ainda não funcionou.

Você pode me ajudar com uma maneira alternativa?

Responder1

Você pode usar \numexprand \dimexpr, mas isso arredonda em vez de truncar:

\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}

Uma abordagem diferente, onde você pode escolher entre piso, teto e redondo, é com 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}

insira a descrição da imagem aqui

informação relacionada