将字符串转换为数字

将字符串转换为数字

如何将以字符串形式给出的数字转换为“实数”?考虑以下 MWE:

\documentclass{article}
\usepackage{datenumber}
\usepackage{xstring}
\begin{document}
\newcommand{\tag}{\StrBefore{01.01.2000}{.}}
%\setdatenumber{2000}{10}{\tag}
\setdatenumber{2000}{10}{10}
\tag \\
\datedate
\end{document}

此处,\tag设置为,01如输出所示。但是如果我使用该行,\setdatenumber{2000}{10}{\tag}我会收到错误“缺失数字,视为零”。我该如何避免这种情况?我发现的其他“将字符串转换为数字”问题似乎都在这里没有帮助。

答案1

问题是由于\StrBefore不可扩展导致的,所以数字被打印出来但不能用于进一步的计算。作者xstring增加了一个可选参数来\StrBefore帮助解决这类问题:你可以传入一个控制序列的名称来[]将此控制序列设置为的结果\StrBefore

\documentclass{article}
\usepackage{datenumber}
\usepackage{xstring}
\begin{document}
\StrBefore{01.01.2000}{.}[\tag]
\setdatenumber{2000}{10}{\tag}
\tag \\
\datedate
\end{document}

相关内容