Usar números almacenados en un comando mediante spreadtab

Usar números almacenados en un comando mediante spreadtab

Mi objetivo es crear un comando para almacenar números y calcularlos en la tabla.

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

Pero por alguna razón tengo que cargar el número del código. Por ejemplo, lo uso \newcommand{\BASESALARYAMOUNT}{50,000.00}para reemplazar parte de la mesa. Debido a la existencia de ,, suelo xstringeliminarlo con el siguiente comando. Pero no funciona.

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

¿Alguna solución? Gracias

Respuesta1

Aquí hay un enfoque stringstrings, si entiendo el problema del OP. La macro \convertchar[q]{\BASESALARYAMOUNT}{,}{}elimina el carácter de coma \BASESALARYAMOUNTy almacena el resultado \thestringpara recuperarlo más adelante.

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

ingrese la descripción de la imagen aquí

Respuesta2

En lugar de usar \newcommand{\basesalaryamountno}{\StrSubstitute{\BASESALARYAMOUNT{}}{,}{}}, descubrí \StrDel{\BASESALARYAMOUNT{}}{,}[\baseamount]que puede resolver el problema. Esto podría eliminar los ,números y almacenar la nueva cadena en el archivo \baseamount.

información relacionada