将空字符串转换为整数

时间:2013-01-16 20:53:50

标签: coldfusion integer string

目前,我的应用程序显示此错误消息:

“值''无法转换为数字。”

这并不让我感到惊讶。刚刚添加了变量,因此对于在我创建新字段之前使用该应用程序的任何人来说,该变量都是一个空字符串。

<td><cfif studentRecruitComments neq "">
        <a href="javascript: showContent('#studentRecruitComments#')">
            #studentRecruit#
        </a>
     <cfelse>
         #studentRecruit#
     </cfif>
</td>
<cfset tstudentRecruit = tstudentRecruit + studentRecruit>

最后的数学是计算系统。变量tstudentRecruit在此行之前也设置为0,因此它肯定位于studentRecruit变量中。将空字符串转换为整数的正确方法是什么?这里有什么明显的错误吗?

2 个答案:

答案 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