Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
coldfusion怪异的额外空间_Coldfusion_Cfc - Fatal编程技术网

coldfusion怪异的额外空间

coldfusion怪异的额外空间,coldfusion,cfc,Coldfusion,Cfc,我有一个将字符串转换为数字的函数 <cffunction name="convertToNumber" returntype="numeric"> <cfargument name="separator" required="Yes" type="string" /> <cfargument name="number" required="Yes" type="string" /> <cfset LOCAL.arrSeparat

我有一个将字符串转换为数字的函数

<cffunction name="convertToNumber" returntype="numeric">
    <cfargument name="separator" required="Yes" type="string" />
    <cfargument name="number" required="Yes" type="string" />

    <cfset LOCAL.arrSeparator = ["comma", "period", "lakh_crore"] />

    <cfif ARGUMENTS.separator eq "comma" or ARGUMENTS.separator eq "lakh_crore">
        <cfif ListLen(ARGUMENTS.number, ".") eq 2>
            <cfset LOCAL.integral = ListFirst(ARGUMENTS.number, ".") />
            <cfset LOCAL.fractional = ListLast(ARGUMENTS.number, ".") />
        <cfelse>
            <cfset LOCAL.integral = ARGUMENTS.number />
            <cfset LOCAL.fractional = "" />
        </cfif>

        <cfset LOCAL.integral = Replace(LOCAL.integral, ",", "", "ALL") />
        <cfset LOCAL.returnValue = LOCAL.integral />

        <cfif Len(Trim(LOCAL.fractional))>
            <cfset LOCAL.returnValue &= "." & LOCAL.fractional />
        </cfif>
    </cfif>

    <cfif ARGUMENTS.separator eq "period">
        <cfif ListLen(ARGUMENTS.number, ",") eq 2>
            <cfset LOCAL.integral = ListFirst(ARGUMENTS.number, ",") />
            <cfset LOCAL.fractional = ListLast(ARGUMENTS.number, ",") />
        <cfelse>
            <cfset LOCAL.integral = ARGUMENTS.number />
            <cfset LOCAL.fractional = "" />
        </cfif>

        <cfset LOCAL.integral = Replace(LOCAL.integral, ".", "", "ALL") />
        <cfset LOCAL.returnValue = LOCAL.integral />

        <cfif Len(Trim(LOCAL.fractional))>
            <cfset LOCAL.returnValue &= "." & LOCAL.fractional />
        </cfif>
    </cfif>

    <cfreturn LOCAL.returnValue />

</cffunction>

<cfset separatorNumber = StructNew() />
<cfset separatorNumber.comma = "1,234,567,890.123456">
<cfset separatorNumber.period = "1.234.567.890,123456">
<cfset separatorNumber.lakh_crore = "1,23,45,67,890.123456">

<cfloop collection="#separatorNumber#" item="separator">
    <p>
        #separator# :
        <input type="Text" value="#convertToNumber(separator, separatorNumber[separator])#">
        Length : #Len(convertToNumber(separator, separatorNumber[separator]))#
    </p>
</cfloop>


#分隔符#:
长度:#Len(convertToNumber(分隔符,分隔符编号[分隔符])#

长度为17,但在输入文本中,它会在第一个字符处添加额外的空白。我真的不知道如何删除多余的空白,当我添加ToString(Trim())时


它仍然有额外的空白


谢谢

很简单。将
放入您的
中。需要将
放在
之后

我在我的博客中写到了cffunction中的额外空间

<cffunction name="convertToNumber" returntype="numeric">
    <cfargument name="separator" required="Yes" type="string" />
    <cfargument name="number" required="Yes" type="string" />
    <cfsilent>
        <cfset LOCAL.arrSeparator = ["comma", "period", "lakh_crore"] />
        <cfif ARGUMENTS.separator eq "comma" or ARGUMENTS.separator eq "lakh_crore">
            <cfif ListLen(ARGUMENTS.number, ".") eq 2>
                <cfset LOCAL.integral = ListFirst(ARGUMENTS.number, ".") />
                <cfset LOCAL.fractional = ListLast(ARGUMENTS.number, ".") />
            <cfelse>
                <cfset LOCAL.integral = ARGUMENTS.number />
                <cfset LOCAL.fractional = "" />
            </cfif>
            <cfset LOCAL.integral = Replace(LOCAL.integral, ",", "", "ALL") />
            <cfset LOCAL.returnValue = LOCAL.integral />
            <cfif Len(Trim(LOCAL.fractional))>
                <cfset LOCAL.returnValue &= "." & LOCAL.fractional />
            </cfif>
        </cfif>
        <cfif ARGUMENTS.separator eq "period">
            <cfif ListLen(ARGUMENTS.number, ",") eq 2>
                <cfset LOCAL.integral = ListFirst(ARGUMENTS.number, ",") />
                <cfset LOCAL.fractional = ListLast(ARGUMENTS.number, ",") />
            <cfelse>
                <cfset LOCAL.integral = ARGUMENTS.number />
                <cfset LOCAL.fractional = "" />
            </cfif>
            <cfset LOCAL.integral = Replace(LOCAL.integral, ".", "", "ALL") />
            <cfset LOCAL.returnValue = LOCAL.integral />
            <cfif Len(Trim(LOCAL.fractional))>
                <cfset LOCAL.returnValue &= "." & LOCAL.fractional />
            </cfif>
        </cfif>
        <cfreturn LOCAL.returnValue />
    </cfsilent>
</cffunction>

<cfset separatorNumber = StructNew() />
<cfset separatorNumber.comma = "1,234,567,890.123456" />
<cfset separatorNumber.period = "1.234.567.890,123456" />
<cfset separatorNumber.lakh_crore = "1,23,45,67,890.123456" />
<cfoutput>
    <cfloop collection="#separatorNumber#" item="separator">
        <p>
            #separator# : 
            <input type="Text" value="#convertToNumber(separator, separatorNumber[separator])#">
            Length : #Len(convertToNumber(separator, separatorNumber[separator]))# 
        </p>
    </cfloop>
</cfoutput>


#分隔符#:
长度:#Len(convertToNumber(分隔符,分隔符编号[分隔符])#


您是否尝试将
output=“false”
添加到功能标签中

<cffunction name="convertToNumber" returntype="numeric" output="false">...</cffunction>
。。。

希望能有所帮助。

我遇到了类似的问题,对我有效的方法是将方法返回的值放入变量,然后输出变量,而不是方法返回的值。我根本没有格式化它,但不知怎么的,这很有帮助。

伙计。。!!因为你没有按我说的做。掌握我的上述编码。正如我之前告诉你的那样,我已经编辑了。掌握它。您可能还需要了解ColdFusion管理员中的cfsetting(enablecfoutputonly属性)和抑制空白设置。使用cfsetting方法时要小心。我在一些API包装器中看到过这种情况,当它们崩溃时,它会把我们页面上的输出搞得一团糟(当它崩溃时,将重新启用输出的cfsetting标记从未执行过,所以搞砸了)。我认为output=“false”是一种更好、更可靠的方法。
<cffunction name="convertToNumber" returntype="numeric" output="false">...</cffunction>