我没有工作lucee coldfusion

时间:2017-08-02 14:32:33

标签: coldfusion lucee

我使用下面的格式来计算我在计算增加或减少百分比后得到的数字,这意味着这个数字可以是正数或负数。以下在Coldfusion上运行正常,但在Lucee上它会抛出错误 - 无法将[ - 6.50]字符串转换为数字值。知道如何解决这个问题。

<cfif money_deposit lt 0>
    <cfset testVar = abs(NumberFormat(money_deposit,'99.99'))>
<cfelse>
    <cfset testVar = NumberFormat(money_deposit,'99.99')>
</cfif>

3 个答案:

答案 0 :(得分:3)

您应该可以使用javaCast

<cfif money_deposit lt 0>
  <cfset testVar = abs(NumberFormat(javaCast("float", money_deposit),'99.99'))>
<cfelse>
  <cfset testVar = NumberFormat(money_deposit,'99.99')>
</cfif>

答案 1 :(得分:1)

首先,删除所有空格。在任何情况下,最好首先测试输入参数是否为数字。

<!--- Remove any spaces --->
<cfset money_deposit = REreplace(money_deposit,"\s","","all")>
<cfif isNumeric(money_deposit)>
    <cfif money_deposit lt 0>
        <cfset testVar = abs(NumberFormat(money_deposit,'-99.99'))>
    <cfelse>
        <cfset testVar = NumberFormat(money_deposit,'99.99')>
    </cfif>
</cfif>

答案 2 :(得分:0)

数字格式返回一个字符串 http://docs.lucee.org/reference/functions/numberformat.html

问题是你的格式化掩码“99.99”表示返回一个带小数点前两个字符的格式化数字,你得到的字符串值是“ - 6.50”,有一个额外的空格。尝试使用掩码格式为“9.99”或“09.99”