14

我正在尝试使用 \ifthenelse 进行浮点比较。这是 pgf/tikz 代码,如果 \y 仅是整数,则该代码有效,否则无效:

\foreach \y in {3,3.5,...,6} {
    ifthenelse{\y<3}{
        ...
    }{
        ...
    }
}
4

3 回答 3

13

您不能使用浮动变量。使用尺寸代替。例如

\newdimen \y 
\y = 3.2pt
\ifdim \y < 3.45pt ... \else ... \fi
于 2010-04-20T16:17:16.583 回答
12

为了扩展 Alexey 关于使用维度的建议,这里有一些工作 Ti k Z 代码,我认为可以解决您的问题:

\documentclass{article}
\usepackage{tikz}
\usepackage{ifthen}
\begin{document}
  \begin{tikzpicture}
    \foreach \y in {3,3.5,...,6} {
      \ifthenelse{\lengthtest{\y pt > 4.5pt}}{
        \node at (0,\y) {\y\ is greater than 4.5!};
      }{
        \node at (0,\y) {\y\ is less than 4.5};
      }
    }
  \end{tikzpicture}
\end{document}
于 2010-05-06T16:36:27.293 回答
4

如果您已经定义了一些浮点数,您可以使用以下对我有用的技巧(基于 Alexeys 的帖子):

    \def\someFloat{1.5}

    % prepare comparison by building a dummy dim value
    \newdimen\dummyDim
    \dummyDim = \someFloat pt

    % compare:
    \ifdim \dummyDim > 0pt %
       % ...
    \else
       % ...
    \fi
于 2013-07-18T09:19:26.377 回答