数字转文本 - 错误结果带有分数

数字转文本 - 错误结果带有分数

当我在以下代码中使用整数时,它可以正常工作。但是使用分数(例如 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}

在此处输入图片描述

相关内容