假设我有以下 LaTex 数字表:
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{lll}
0,209966415285772 & 0,107300702188478 & 0,220336484787743 \\
0,235535794083825 & 0,124200085401020 & 0,241022336291680 \\
0,238895516728854 & 0,112685447109388 & 0,241352008484367
\end{tabular}
\end{table}
我怎样才能将第 1-2 行四舍五入为小数点后 3 位,将第 3 行四舍五入为小数点后 2 位?
我之所以问这个问题,是因为我有一张包含大量数字的大表,我需要对表的不同部分进行不同的舍入。我该怎么做?MWE?
答案1
一个小的变化德克萨斯人答案(考虑到您的评论):
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{table}
\sisetup{table-column-width=16ex, % local setting for all S columns
round-mode=places,round-precision=3}
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{SSS}
0,209 966 415 285 772 & 0,107300702188478 & 0,220336484787743 \\
0,235535794083825 & 0,124200085401020 & 0,241022336291680 \\
\end{tabular}\\
\sisetup{round-precision=2} % change setting for next S columns
\begin{tabular}{SSS}
0,238895516728854 & 0,112685447109388 & 0,241352008484367
\end{tabular}
\end{table}
\end{document}
答案2
您可以使用siunitx
。注意:对于最后一行,您必须伪造一些水平空间。
\documentclass{article}
\usepackage[input-decimal-markers={,},round-mode=places,round-precision=3]{siunitx}
\begin{document}
\begin{table}
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{SSS}
0,209966415285772 & 0,107300702188478 & 0,220336484787743 \\
0,235535794083825 & 0,124200085401020 & 0,241022336291680 \\
\sisetup{round-precision=2}\hphantom{-\,}\num{0,238895516728854} &
\sisetup{round-precision=2}\hphantom{-\,}\num{0,112685447109388} &
\sisetup{round-precision=2}\hphantom{-\,}\num{0,241352008484367}
\end{tabular}
\end{table}
\end{document}
更新:我刚刚与作者siunitx
(Joseph Wright)进行了讨论,设置宏是本地的(因此您无法更改以下行)。无论如何,表格都应按列格式化。如果您确实需要改变该行为,您可以使用自己的命令来实现。