我有一个宏
\mywonderfulmacro{...}
期望用普通浮点数代替...
。(例如,
\mywonderfulmacro{4.51}
是有效的。)现在我想做这样的事情:
\def\a{1.2}
\def\b{1.3}
\mywondefulmacro{\a * \b}
当然,我们希望上述代码能够
\mywonderfulmacro{1.56}
正在评估。不幸的是,TeX 不能这样工作,所以我得到了一个错误!
正确/最简单的方法是什么?
附言:我知道,只要有足够的辨别力,答案肯定隐含在这个论坛以前的问题/答案中,但我的专业知识很少,所以我需要一个在特定情况下解决这个特定问题的答案,而不是指向一些技术帖子之\the
\numexpr
类的 :/
答案1
该包提供对浮点“库”xfp
的访问,宏用于此类计算。它是可扩展的。expl3
fp
\fpeval
\numexpr\anumber*\bnumber
顺便说一句,它不起作用。
\documentclass{article}
\usepackage{xfp}
\def\anumber{1.2}
\def\bnumber{1.3}
\newcommand{\mywonderfulmacro}[1]{\fpeval{#1}}
\begin{document}
\mywonderfulmacro{\anumber * \bnumber}
\end{document}
答案2
我找到
\pgfmathsetmacro{\theproduct}{\a*\b}
\mywonderfulmacro{\theproduct}
将工作。
任何其他解决方案/见解都值得赞赏!