在 FPEval / 未定义的控制序列中使用宏 / 命令的结果

在 FPEval / 未定义的控制序列中使用宏 / 命令的结果

如何修复以下 LaTeX 代码,以便在稍后的 \FPEval 计算中正确使用“\RoundGrade{\codeA}”的结果?

\documentclass{standalone}
\usepackage{fp}

\newcommand{\RoundGrade}[1]{\FPiflt{#1}{1.15001}1.0\else1.3\fi}

\begin{document}
\FPeval{\codeA}{1.03}%
Rounded to \RoundGrade{\codeA}
\FPeval{\codeB}{+(\RoundGrade{\codeA},0)}
\end{document}

预期行为是,当 (pdf)LaTeX 编译器遇到“\end{document}”时,“\codeB”包含“1.0”。然而,代码当前产生的结果如下:

/path/to/texfile.tex:9: Undefined control sequence.
\FP@strip #1->{\edef \FP@tmp {#1}\edef \FP@tmpb 
                                                {}\ifx \FP@tmp \@empty \else...
l.9 \FPeval{\codeB}{+(\RoundGrade{\codeA},0)}

当将上述倒数第二行中的“\RoundGrade{\codeA}”替换为“1.0”时,文档可以编译。此外,值 1.0 会正确地打印在生成的文档中的倒数第三行中(注释掉倒数第二行时)。

相关内容