tikz 数学库:为什么这个运算“755/100”会产生 7.54999 而不是 7.55?

tikz 数学库:为什么这个运算“755/100”会产生 7.54999 而不是 7.55?

这是一个代码示例。

\tikzmath{
    \x = 755;
    \x = \x / 100;
}

Output: \x

我希望 \x 中存储的值为 7.55,但它却是 7.54999。

是否有一些设置可以使结果符合我的预期?

编辑

我根据 Sandy G 的建议制定了命令。

\newcommand{\floatfix}[1]{
    \pgfmathroundto{#1}\xdef#1{\pgfmathresult}
}

现在当我跑步时:

\tikzmath{
    \x = 755;
    \x = \x / 100;
}
\floatfix{\x}
Output: \x

我得了 7.55

答案1

一个解决方法是使用\pgfmathroundto

\tikzmath{
    \x = 755;
    \x = \x / 100;
}
\pgfmathroundto{\x}

Output: \pgfmathresult

在此处输入图片描述

答案2

tikz(默认情况下,除非你使用该fp库)使用 TeX 维度算法,因此你看到的结果

\documentclass{article}

\begin{document}

\dimen0=755pt
\divide\dimen0 by 100
\the\dimen0
\end{document}

产生

在此处输入图片描述

在任何浮点(或定点)计算中,最后的小数位都是任意的,更精确的 fp 库可能会更接近,但您无法将 7.55 准确地存储为浮点双精度数或 TeX 缩放点的倍数,因此出现一些舍入误差并不意外。

相关内容