Verwenden Sie in einem Befehl gespeicherte Zahlen von spreadtab

Verwenden Sie in einem Befehl gespeicherte Zahlen von spreadtab

Mein Ziel ist es, einen Befehl zum Speichern und Berechnen von Zahlen in der Tabelle zu erstellen.

\begin{table}[h]
  \npthousandsep{,}
  \STautoround*{0}
\begin{spreadtab}{{tabular}{| l | r | r | r |}} \hline
                        & @\textbf{Current Arrangement} & @\textbf{New Arrangement} & @\textbf{Difference} \\ \hline
    @Base Salary (SGD)  & 50000.00                      & 60000.00                  & c2-b2\\ \hline
\end{spreadtab}
\end{table}

Aber aus irgendeinem Grund muss ich die Nummer aus dem Code laden. Beispielsweise verwende ich , \newcommand{\BASESALARYAMOUNT}{50,000.00}um einen Teil der Tabelle zu ersetzen. Aufgrund der Existenz von ,, verwende ich , xstringum es mit dem folgenden Befehl zu löschen. Aber es läuft nicht.

\newcommand{\BASESALARYAMOUNT}{50,000.00}
\newcommand{\basesalaryamountno}{\StrSubstitute{\BASESALARYAMOUNT{}}{,}{}}
\begin{table}[h]
  \npthousandsep{,}
  \STautoround*{0}
\begin{spreadtab}{{tabular}{| l | r | r | r |}} \hline
                        & @\textbf{Current Arrangement} & @\textbf{New Arrangement} & @\textbf{Difference} \\ \hline
    @Base Salary (SGD)  & \BASESALARYAMOUNT             & 60000.00                  & c2-b2\\ \hline
\end{spreadtab}
\end{table}

Irgendwelche Lösungen? Danke

Antwort1

Hier ist ein Ansatz mit stringstrings, wenn ich das Problem des OP richtig verstehe. Das Makro \convertchar[q]{\BASESALARYAMOUNT}{,}{}entfernt das Kommazeichen aus \BASESALARYAMOUNTund speichert das Ergebnis in \thestringzum späteren Abrufen.

\documentclass{article}
\usepackage{spreadtab,numprint,stringstrings}
\begin{document}
\newcommand{\BASESALARYAMOUNT}{50,000.00}
\convertchar[q]{\BASESALARYAMOUNT}{,}{}
\begin{table}[h]
  \npthousandsep{,}
  \STautoround*{0}
\begin{spreadtab}{{tabular}{| l | r | r | r |}} \hline
                        & @\textbf{Current Arrangement} & @\textbf{New Arrangement} & @\textbf{Difference} \\ \hline
    @Base Salary (SGD)  & \thestring            & 60000.00                  & c2-b2\\ \hline
\end{spreadtab}
\end{table}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Anstatt zu verwenden \newcommand{\basesalaryamountno}{\StrSubstitute{\BASESALARYAMOUNT{}}{,}{}}, habe ich \StrDel{\BASESALARYAMOUNT{}}{,}[\baseamount]eine Lösung für das Problem gefunden. Dadurch kann das ,in den Zahlen gelöscht und die neue Zeichenfolge im gespeichert werden \baseamount.

verwandte Informationen