\fp_eval 是否可以处理大写 e(“E”)指数符号格式

\fp_eval 是否可以处理大写 e(“E”)指数符号格式

在处理文本文件的数据时,我偶然发现了这个问题。

我的数字数据使用 C 格式说明符进行格式化%n.dE。它将以大写字母 e (E) 作为科学计数法指数字符输出。虽然小写字母 e 的情况可以正常工作,但浮点计算似乎因这些主要 E 字符而失败。

我知道最好的解决方案是简单地更改写入格式说明符,但我认为生成软件中存在一个错误,阻止我纠正这个问题。

模块中是否有选项fp可以纠正此问题?我找不到相关文档。

这是一个抛出问题错误的示例

\documentclass[border=3.14mm]{standalone}
\usepackage{xparse}
\ExplSyntaxOn
\DeclareExpandableDocumentCommand \eval { m } { \fp_eval:n { #1 } }
\ExplSyntaxOff

\begin{document}
    \eval{123456789}
    \eval{1.23456789}
    \eval{1.23456789e3}
    \eval{1.23456789E3}
\end{document}

在此处输入图片描述

答案1

您可以通过编程将字符串变为小写:

\documentclass[border=3.14mm]{standalone}
\usepackage{xparse}
\ExplSyntaxOn
\NewExpandableDocumentCommand \eval { m } { \fp_eval:n { \str_lowercase:n { #1 } } }
\ExplSyntaxOff

\begin{document}
    \eval{123456789}
    \eval{1.23456789}
    \eval{1.23456789e3}
    \eval{1.23456789E3}
\end{document}

相关内容