![改变电子表格中的小数位数](https://linux22.com/image/299066/%E6%94%B9%E5%8F%98%E7%94%B5%E5%AD%90%E8%A1%A8%E6%A0%BC%E4%B8%AD%E7%9A%84%E5%B0%8F%E6%95%B0%E4%BD%8D%E6%95%B0.png)
我有一张预算表,它使用电子表格。
\STautoround*{2}
\begin{spreadtab}{{tabular}{lrrrr}}
@\textbf{Item} &@\textbf{Unit Value}&@\textbf{Unit Cost}&@\textbf{Quantity}&@\textbf{Total Price}\\
\hline
@7-segment display &10 &1.00 &1050 &[-1,0] * [-2,0]\\
@Capacitor (100nF) &0.08 &0.08 &1400 &[-1,0] * [-2,0]\\
@Capacitor (10$\mu$F) &0.10 &0.10 &350 &[-1,0] * [-2,0]\\
\end{spreadtab}
我想将价格四舍五入到小数点后 2 位,将数量四舍五入到零位。目前,此代码将它们全部四舍五入到小数点后 2 位。如何选择每列的小数位数?
答案1
例如,您可以使用示例包numprint
,它为您提供了使用列类型N{6}{2}
来格式化列中的数字的可能性,\nprounddigits{2}
您可以根据需要对数字进行四舍五入。
您更改的代码片段作为MWE:
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\usepackage{spreadtab}
\usepackage{numprint}
\begin{document}
\STsetdecimalsep{,} % German writing: comment it for english
\nprounddigits{2}
\begin{spreadtab}{{tabular}{lrrrN{6}{2}}}
@\textbf{Item} &@\textbf{Unit Value}
&@\textbf{Unit Cost}
&@\textbf{Quantity}
&@\textbf{Total Price}\\
\hline
@7-segment display &10 &1.13 &1050 &[-1,0] * [-2,0]\\
@Capacitor (100nF) &0.08 &0.08 &1400 &[-1,0] * [-2,0]\\
@Capacitor (10$\mu$F) &0.10 &0.10 &350 &[-1,0] * [-2,0]\\
\end{spreadtab}
\end{document}
你会得到结果:
答案2
我建议使用功能强大的siunitx
套件。
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{spreadtab}
\usepackage{siunitx}
\usepackage{booktabs}
\newcolumntype{E}[1]{% E for Euro; the argument is the number of digits in the mantissa
S[table-format=#1.2,round-integer-to-decimal,round-mode=places,round-precision=2]%
}
\begin{document}
\begin{spreadtab}{%
{tabular}{
l
S[table-format=2.2]
E{1}
S[table-format=4.0]
S[table-format=4.2,round-mode=places,round-integer-to-decimal,round-precision=2]% customize at will
}%
}
\toprule
@\textbf{Item} &@\textbf{Unit Value}
&@\textbf{Unit Cost}
&@\textbf{Quantity}
&@\textbf{Total Price}\\
\midrule
@7-segment display &10 &1.13 &1050 &[-1,0] * [-2,0]\\
@Capacitor (\SI{100}{\nano\farad})
&0.08 &0.08 &1400 &[-1,0] * [-2,0]\\
@Capacitor (\SI{10}{\micro\farad})
&0.10 &0.10 &350 &[-1,0] * [-2,0]\\
\bottomrule
\end{spreadtab}
\end{document}