我尝试使用以下代码获取 0、1、2、...、5,但得到的结果是 0.59999、0.79999、0.9999。如何修复它
\foreach \i [] in {0,0.2,...,1}{
\draw (0,{5*\i}) --++(-0.2,0) node[left]{$\i$};
};
答案1
正如您所发现的,PGF 浮点运算并不是那么好。它足以满足排版目的,但通常不是。
整数运算更好。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \i [] in {0,1,...,5}{
\draw (0,{\i}) -- +(-0.2,0) node[left]{\fpeval{\i/5}};
}
\end{tikzpicture}
\end{document}
请注意,我使用了\fpeval
(适用于最新的 LaTeX 版本,否则请添加\usepackage{xfp}
)。
对于其他舍入情况,您可以使用
\fpeval{round(<floating point number>,<number of decimal digits>)}
就你的情况来说,确实是这样的\fpeval{round(\i/5,1)}
。