![数字转文本 - 错误结果带有分数](https://linux22.com/image/301040/%E6%95%B0%E5%AD%97%E8%BD%AC%E6%96%87%E6%9C%AC%20-%20%E9%94%99%E8%AF%AF%E7%BB%93%E6%9E%9C%E5%B8%A6%E6%9C%89%E5%88%86%E6%95%B0.png)
当我在以下代码中使用整数时,它可以正常工作。但是使用分数(例如 4.7)时,会出现错误。
\documentclass{minimal} \usepackage{fmtcount}
\begin{document}
\numberstringnum{4}
\numberstringnum{4.7}
\end{document}
我该如何解决这个问题
答案1
您必须在句点处拆分数字,并将其用于\numberstringnum
两个部分。
\documentclass{article}
\usepackage{fmtcount,xparse}
\NewDocumentCommand{\spellamount}{>{\SplitArgument{1}{.}}m}{%
\dospellamount#1%
}
\NewDocumentCommand{\dospellamount}{mm}{%
\numberstringnum{#1}
\IfValueT{#2}{%
\spellcomma\
\expandafter\numberstringnum\expandafter{%
\number\numexpr\ifnum#2<10 10*\fi #2\relax
}%
}%
}
\newcommand{\spellcomma}{comma}% modify to suit
\begin{document}
\spellamount{8}
\spellamount{8.7}
\spellamount{8.75}
\end{document}