我正在尝试使用\ ifthenelse进行浮点比较。这是pgf / tikz代码,如果\ y仅为整数,则有效,但不是其他:
\foreach \y in {3,3.5,...,6} {
ifthenelse{\y<3}{
...
}{
...
}
}
答案 0 :(得分:11)
您不能使用浮动变量。使用维而不是。例如
\newdimen \y
\y = 3.2pt
\ifdim \y < 3.45pt ... \else ... \fi
答案 1 :(得分:6)
为了扩展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}
答案 2 :(得分:3)
如果你已经定义了一些浮动,你可以使用以下对我有用的技巧(基于Alexeys帖子):
\def\someFloat{1.5}
% prepare comparison by building a dummy dim value
\newdimen\dummyDim
\dummyDim = \someFloat pt
% compare:
\ifdim \dummyDim > 0pt %
% ...
\else
% ...
\fi