目前,我的应用程序显示此错误消息:
“值''无法转换为数字。”
这并不让我感到惊讶。刚刚添加了变量,因此对于在我创建新字段之前使用该应用程序的任何人来说,该变量都是一个空字符串。
<td><cfif studentRecruitComments neq "">
<a href="javascript: showContent('#studentRecruitComments#')">
#studentRecruit#
</a>
<cfelse>
#studentRecruit#
</cfif>
</td>
<cfset tstudentRecruit = tstudentRecruit + studentRecruit>
最后的数学是计算系统。变量tstudentRecruit
在此行之前也设置为0,因此它肯定位于studentRecruit变量中。将空字符串转换为整数的正确方法是什么?这里有什么明显的错误吗?
答案 0 :(得分:6)
您可以简单地使用val()函数,该函数返回数字或转换失败时返回零。因此,您无需检查您的变量是否为数字。
<cfset tstudentRecruit = tstudentRecruit + val(studentRecruit)>
答案 1 :(得分:5)
我稍微更改了代码:
<td>
<cfif NOT Len(trim(studentRecruitComments))>
<a href="javascript: showContent('#studentRecruitComments#')">
#studentRecruit#
</a>
<cfelse>
#studentRecruit#
</cfif>
</td>
<cfif NOT isNumeric(studentRecruit)>
<cfset studentRecruit = 0>
</cfif>
<cfset tstudentRecruit = tstudentRecruit + studentRecruit>
我在这里做的事很少:
首先,更改 cfif studentRecruitComments neq“”以实际检查字符串的长度,选择检查它是否为空。我;添加修剪以删除可能存在的任何空白区域。
然后检查变量 studentRecruit 是否为数字,如果不是,我将其设置为0,这样,您的代码就不会失败。
显然我并不真正了解您的代码的上下文,因为我认为它可以进一步改进。
但是,使用我的代码段会导致错误消失。
HTH