newcommand 说缺少数字

newcommand 说缺少数字

我打算编写一个命令,对 n 位数字进行四舍五入。n 是可选参数,默认值为 2。但是,我一直收到错误消息:

缺少数字,视为零。让我们看看是否打印:\round{3.1415926,2}

\documentclass{article}
\usepackage{tikz}

\newcommand{\round}[2][2]{\pgfmathparse{round({#1}*10^{#2})/(10^{#2})}\pgfmathresult}

\begin{document}
Let's see if this prints: \round{3.1415926,2}.
\end{document}

我做错了什么?如何修复此代码?

答案1

除了额外逗号的问题之外,我认为你搞错了#1和的顺序#2,而且已经有办法可以精确地完成你想要的操作。

\documentclass{article}
\usepackage{tikz}

\newcommand{\round}[2][2]{
\pgfkeys{/pgf/number format/.cd,std,precision=#1}
\pgfmathprintnumber{#2}
}

\begin{document}
Let's see if this prints: \round{3.14159262}.
\end{document}

相关内容