如何将两个长度相除并得到整数结果?

如何将两个长度相除并得到整数结果?

我在将两个长度相除并得到整数结果时遇到了问题。我尝试使用这个包:

\usepackage[nomessages]{fp}

对我来说,它真的不起作用。我尝试了多种方法,但仍然不起作用。

您能帮我找到其他方法吗?

答案1

您可以使用\numexpr\dimexpr,但这会四舍五入而不是截断:

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

另一种方法是,您可以在 floor、ceil 和 round 之间进行选择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}

在此处输入图片描述

相关内容