2010-04-20 106 views
9

我試圖用\ ifthenelse來做一個浮點比較。這是pgf/tikz代碼,在\ y僅爲整數時起作用,否則不起作用:比較Latex中的浮點數

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

回答

9

您不能使用浮動變量。使用維度而不是。例如

\newdimen \y 
\y = 3.2pt 
\ifdim \y < 3.45pt ... \else ... \fi 
6

要使用尺寸的阿列克謝的建議擴大,這裏是一些工作鈦ķž代碼,我認爲會解決你的問題:

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

配售\Ÿ後的「PT」在\ lengthtest明確地將它轉換爲維度是一個真棒黑客。 – 2015-08-26 07:23:11

0

如果您已經定義了一些浮動您可以使用下面的技巧,其工作對我來說(基於此Alexeys後):

\def\someFloat{1.5} 

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

    % compare: 
    \ifdim \dummyDim > 0pt % 
     % ... 
    \else 
     % ... 
    \fi