使用计算将数字四舍五入到最接近的十分位

使用计算将数字四舍五入到最接近的十分位

我尝试使用以下代码获取 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)}

答案2

\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \i [] in {0,0.2,...,1}{
\draw (0,{5*\i}) -- +(-0.2,0) node[left]{\pgfmathprintnumber{\i}};
};
\end{tikzpicture}
\end{document}

垂直数轴

相关内容