如何更改数字的精度?下面的示例将其定义\mynum
为具有大量数字的数字。大多数时候,当我\mynum
在文本中使用时,我希望它完全按照定义显示,但有时我可能希望用 4 位数字显示它,因此在此示例中它将显示为12.35
。
是否有包或预先存在的乳胶函数可以执行此操作?我能找到的有关更改数字精度的大多数内容都涉及表格和列格式,这不适用于文本中的单个数字。
\documentclass{article}
\newcommand{\mynum}{12.34567890}
\begin{document}
\mynum
\end{document}
我正在思考类似以下伪代码的事情:
\round{4}{\mynum} % not real code
答案1
感谢@moewe 和@Steven B. Segletes 提供的软件包建议和工作示例。这是我能够整理出的解决方案。
本质上,我能够使用包\num
中提供的宏siunitx
以及一些适当的可选参数将数字舍入到我喜欢的任何精度级别。我可以用两种方法来实现这一点:
- 用于
round-mode=places,round-precision=2
四舍五入到小数点后 2 位 - 或者使用
round-mode=figures,round-precision=4
四舍五入到 4 位有效数字。
两种方法都将 12.34567890 更改为 12.35。我的代码如下,其中还包括我在问题中编写的伪代码形式的宏。
\documentclass{article}
\usepackage{siunitx}
\newcommand{\mynum}{12.34567890}
\newcommand{\round}[2]{\num[round-mode=places,round-precision=#1]{#2}}
\begin{document}
\mynum
\round{2}{\mynum}
\num[round-mode=figures,round-precision=4]{\mynum}
\end{document}
该代码的输出是:
12.34567890
12.35
12.35