3

現在、私のアプリケーションは次のエラー メッセージを表示しています。

「値 '' を数値に変換できません。」

それは私を驚かせません。変数は追加されたばかりなので、新しいフィールドを作成する前にアプリケーションを使用した人にとっては、変数は空の文字列です。

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

最後の計算は集計システム用です。この行の前でも変数tstudentRecruitは 0 に設定されているため、これは間違いなく StudentRecruit 変数にあります。空の文字列を整数に変換する適切な方法は何ですか? ここで露骨に間違っていることはありますか?

4

2 に答える 2

6

数値を返すか、変換が失敗した場合はゼロを返す val() 関数を使用するだけです。したがって、変数が数値かどうかを確認する必要はありません。

<cfset tstudentRecruit = tstudentRecruit + val(studentRecruit)>
于 2013-01-17T14:48:52.107 に答える
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

于 2013-01-16T22:24:36.100 に答える