我继续测试从FP到韓膠囊。结果不错,但有两个宏存在问题:\FPifint
和\FPClip
。我没有找到如何在韓膠囊。我有数字(仅限十进制数 [+、-、0、...、9 和“。”])。我想知道一个数字是否是整数,但有第一个条件(还有第二个...):
1.0、15.00 等都是整数
\FPifint
就像这样工作。我找到了一些解决方案,但并不完全令人满意,我宁愿避免加载另一个包。
- 比布拉特克斯 与
\ifinteger
(未测试) - 字符串(
\IsInteger
我不需要所有的东西) - 回忆录(
\checkifinteger
错误解决方案) - 鲁阿与
lua_isinteger
(未测试)
我尝试寻找一个个人解决方案:
% !TEX TS-program = lualatex-dev
\documentclass{article}
\usepackage{xfp,pgffor}
%xfp because i wanted to use \fpeval for some tests
\newif\ifinteger
\makeatletter
\def\removedot#1.{#1}
\newcommand\getinteger[1]{\expandafter\@getinteger#1.\@nil}
\def\@getinteger#1.#2\@nil{%
\ifx\empty#2\empty
\integertrue
\else
\ifnum\removedot#2=0
\integertrue
\else
\integerfalse
\fi
\fi
}
\parindent=0pt
\begin{document}
\foreach \value in {+1 ,-1.00,0.75,10000,0.9998}{
\getinteger{\value}
\ifinteger
\value{} is considered an integer
\else
\value{} is not considered an integer
\fi
\\}
\end{document}
首先,我不确定我的代码是否正确,我想知道如何使用 expl3 来翻译它(或者宏可能附带 xfp?)
我也在寻找一个宏来从小数中删除所有不必要的零,例如FPClip
还有另一个条件:我想接受以 999 结尾的十进制数作为整数。因此 1.999 或 .999 将被视为十进制。我的想法是使用我的代码测试 # 2,但我没有找到令人满意的方法