Используйте числа, сохраненные в команде spreadtab

Используйте числа, сохраненные в команде spreadtab

Моя цель — создать команду для сохранения чисел и вычислений в таблице.

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

Но по какой-то причине мне приходится загружать номер из кода. Например, я использую \newcommand{\BASESALARYAMOUNT}{50,000.00}для замены части таблицы. Из-за существования ,я использую xstringдля его удаления следующую команду. Но она не запускается.

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

Есть решения? Спасибо

решение1

Вот подход с stringstrings, если я понимаю проблему OP. Макрос \convertchar[q]{\BASESALARYAMOUNT}{,}{}удаляет символ запятой из \BASESALARYAMOUNTи сохраняет результат \thestringдля последующего вызова.

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

введите описание изображения здесь

решение2

Вместо использования \newcommand{\basesalaryamountno}{\StrSubstitute{\BASESALARYAMOUNT{}}{,}{}}я нашел \StrDel{\BASESALARYAMOUNT{}}{,}[\baseamount]решение проблемы. Это может удалить ,в числах и сохранить новую строку в \baseamount.

Связанный контент