在处理文本文件的数据时,我偶然发现了这个问题。
我的数字数据使用 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}