Variieren der Anzahl der Dezimalstellen in Spreadtab

Variieren der Anzahl der Dezimalstellen in Spreadtab

Ich habe eine Tabelle für ein Budget, die Spreadtab verwendet.

\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}

Ich möchte die Preise auf zwei Dezimalstellen runden und die Mengen auf null. Derzeit rundet dieser Code sie alle auf zwei Dezimalstellen. Wie wählt man die Anzahl der Dezimalstellen pro Spalte aus?

Antwort1

Sie können beispielsweise ein Paket verwenden numprint, das Ihnen mit dem Spaltentyp N{6}{2}die Möglichkeit gibt, die Zahlen in der Spalte zu formatieren, mit dem \nprounddigits{2}Sie Ihre Zahlen beliebig runden können.

Ihr geänderter Codeabschnitt als 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}

Und Sie erhalten das Ergebnis:

Bildbeschreibung hier eingeben

Antwort2

Ich empfehle das leistungsstarke siunitxPaket.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen