Comparer les nombres à virgule flottante en latex
Question
Je suis en train d'utiliser \ ifthenelse pour faire une comparaison à virgule flottante. Ceci est le PGF / code tikz qui fonctionne si \ y est entier uniquement, mais non autrement:
\foreach \y in {3,3.5,...,6} {
ifthenelse{\y<3}{
...
}{
...
}
}
La solution
Vous ne pouvez pas utiliser des variables flottantes. Utilisez DIMENS au lieu de. Par exemple
\newdimen \y
\y = 3.2pt
\ifdim \y < 3.45pt ... \else ... \fi
Autres conseils
Pour développer la suggestion de Alexey d'utiliser les dimensions, voici quelques Ti travail k code Z que je pense va résoudre votre problème:
\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}
Si vous avez déjà défini un certain flottement, vous pouvez utiliser l'astuce suivante qui a fonctionné pour moi (basé sur le post Alexeys):
\def\someFloat{1.5}
% prepare comparison by building a dummy dim value
\newdimen\dummyDim
\dummyDim = \someFloat pt
% compare:
\ifdim \dummyDim > 0pt %
% ...
\else
% ...
\fi
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow