使用 siunitx 将小数格式化为百分比时出现错误结果

使用 siunitx 将小数格式化为百分比时出现错误结果

我有一个宏,它使用 siunitx 包将十进制数格式化为百分比。它看起来像这样:

\documentclass{article}
\usepackage{siunitx}
\newcommand\perc[1]{\qty[round-mode = places, round-precision = 1,
                        exponent-mode = fixed, fixed-exponent = 0]{#1e2}{\percent}}

\begin{document}
\perc{0.3}
\perc{0.045}
\perc{0}
\end{document}

对于\perc{0.3}\perc{0.045},这将按预期产生30.0%4.5%。但是,对于 0 则失败:\perc{0}结果为0.0 × 10^2。这是 siunitx 有意为之的行为吗?是否有解决方法可以0.0%为 0 提供所需的输出?

答案1

添加drop-exponent=true为后处理选项。

\documentclass{article}
\usepackage{siunitx}
\newcommand\perc[1]{\qty[round-mode = places,
                            round-precision = 1,
                            exponent-mode = fixed,
                            fixed-exponent = 0,
                            drop-exponent=true
                        ]{#1e2}{\percent}}

\begin{document}
    \perc{0.3}
    
    \perc{0.045}
    
    \perc{0}
\end{document}

A

相关内容