我正在创建一个简单的表单,人们可以在其中输入身高和体重,系统会自动计算相应的 BMI。为此,我使用了 hyperref 包中 \TextField 的“计算”选项。
计算进行得很顺利,但提供的答案给出了一个带有小数的数字(例如 22.491349480...),我想仅出现第一个小数(-> 24.4),并且(如果可能的话)最佳输出是第一位小数的四舍五入数 (->24.5)。
仅当我单击字段内部时,“maxlen=4”命令才有效,但打印输出仍然包含所有小数。
我也尝试过改变字段的宽度,这样可以有效地减少答案,但不可能固定一个可以显示所有可能长度的精确宽度。
有人知道如何做到这一点吗?
这是我的代码:
\documentclass[a4paper, 12pt]{article}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\noindent
\TextField[name=hight,align=0]{Hight [cm]}
\\
\TextField[name=weight,align=0]{Weight [kg]}
\\
\noindent
\TextField[name=BMI, maxlen=4,align=0,readonly=true,
calculate={%
var f_hight = this.getField("hight");
var f_weight = this.getField("weight");
event.value = f_weight.value /((f_hight.value/100)*
(f_hight.value/100));
}]{BMI}
\end{Form}
\end{document}
答案1
\documentclass[a4paper, 12pt]{article}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\noindent
\TextField[name=hight,align=0]{Hight [cm]}
\\
\TextField[name=weight,align=0]{Weight [kg]}
\\
\noindent
\TextField[name=BMI, maxlen=4,align=0,readonly=true,
calculate={%
var f_hight = this.getField("hight");
var f_weight = this.getField("weight");
var n = f_weight.value /((f_hight.value/100)*
(f_hight.value/100));
event.value = n.toFixed(2);
}]{BMI}
\end{Form}
\end{document}