いくつかの入力フィールドの値を集計して100に等しいことを確認するために、Coldfusionのルールを使用しています。 これは整数でも機能しますが、10進数を入力するとルールが発生します。合計値は100です。メッセージ文字列に合計値を挿入すると、「これらの値は100%になり、現在の合計は100です」という警告が表示されます。 80、18、1.5、0.1、0.1、および0.3ColdFusionで数値データを使用する数値計算
わからないここでルールのコード、そしてまた私が入力したときの結果を示すスクリーンショットであります問題は...
<!--- Tabulate race --->
<cfif isNumeric(form.whitePct)>
<cfset race += #form.whitePct#>
</cfif>
<cfif isNumeric(form.blackPct)>
<cfset race += #form.blackPct#>
</cfif>
<cfif isNumeric(form.asianPct)>
<cfset race += #form.asianPct#>
</cfif>
<cfif isNumeric(form.paciPct)>
<cfset race += #form.paciPct#>
</cfif>
<cfif isNumeric(form.amerIndPct)>
<cfset race += #form.amerIndPct#>
</cfif>
<cfif isNumeric(form.othPct)>
<cfset race += #form.othPct#>
</cfif>
<!--- Q60 - Numbers for this question should total 100% --->
<cfif race neq '100'>
<cfset queryAddRow(queryLog)>
<cfset querySetCell(queryLog,"ruleField","whitePct")>
<cfset querySetCell(queryLog,"ruleMessage","Q60 - Numbers for this question should total 100%, current total is #race#")>
<cfset querySetCell(queryLog,"ruleGUID","A5DC7FDD-6624-4B0F-A99B-2589B8CBC07D")>
<cfset querySetCell(queryLog,"ruleType","soft warning")>
<cfset querySetCell(queryLog,"ruleCategory","RANGE")>
<cfset querySetCell(queryLog,"ruleOrder","410")>
<cfset querySetCell(queryLog,"ruleID","1484")>
</cfif>
編集:この問題は、この順序でこれらの番号と具体的に関連付けられているようです。私が.1、.1、.3、1.5、18、80と入力すると、ルールは起動しません。今私はさらに混乱しています。
疑わしいときは、データを見てください。この場合、レースの値を何度も出力します。 –
あなたのコード 'は、計算された合計と文字列 '100'を比較します。引用符を外して数字を比較してください。 –
その数字の組み合わせは、[CF11で100になる](http://trycf.com/gist/0cf4ce41cb2a2ff5302fa04358b18966/acf?theme=monokai)、それ以外の値は可能ではありません。 CFはほとんどの数学演算におおよその型を使用するため、結果は丸数字に見えるかもしれませんが、常にそうであるとは限りません。参照:http://stackoverflow.com/questions/7422510/why-does-0-06-0-01-0-07-in-coldfusion http://stackoverflow.com/questions/2002821/why-does-この減算 - 非ゼロ -/2002837#2002837 – Leigh