比较Latex中的浮点数
我正在尝试使用\ifthenels进行浮点比较。这是pgf/tikz代码,仅当\y为整数时有效,否则无效:比较Latex中的浮点数,latex,tikz,pgf,Latex,Tikz,Pgf,我正在尝试使用\ifthenels进行浮点比较。这是pgf/tikz代码,仅当\y为整数时有效,否则无效: \foreach \y in {3,3.5,...,6} { ifthenelse{\y<3}{ ... }{ ... } } {3,3.5,…,6}中的\foreach\y{ ifthenelse{\y不能使用浮动变量。请使用dimens代替。例如 \newdimen \y \y = 3.2pt \ifdim \y <
\foreach \y in {3,3.5,...,6} {
ifthenelse{\y<3}{
...
}{
...
}
}
{3,3.5,…,6}中的\foreach\y{
ifthenelse{\y不能使用浮动变量。请使用dimens代替。例如
\newdimen \y
\y = 3.2pt
\ifdim \y < 3.45pt ... \else ... \fi
\newdimen\y
\y=3.2pt
\ifdim\y<3.45pt…\else…\fi
为了进一步阐述Alexey关于使用维度的建议,下面是一些实用的TikZ代码,我认为可以解决您的问题:
\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}
如果您已经定义了一些float,您可以使用以下对我有用的技巧(基于Alexeys post):
将'pt'放在\y in\lengthtest之后以显式地将其转换为维度是一个很棒的技巧。
\def\someFloat{1.5}
% prepare comparison by building a dummy dim value
\newdimen\dummyDim
\dummyDim = \someFloat pt
% compare:
\ifdim \dummyDim > 0pt %
% ...
\else
% ...
\fi