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