我通常不在ColdFusion中工作,但是有一个FTP进程在工作,我必须为它创建一个报告,现在唯一的选择就是ColdFusion 8服务器。此FTP提要有几个问题(也是垃圾)。
因此,我进行了查询,然后需要在输出过程中转换一些字符串值,以便进行一些数学运算。在此之前:
如何判断输出循环中的字段:不是空白或null,是可以转换为有效数字的字符串,并且不是0?
有没有一种简单的方法可以在没有很多if语句的情况下做到这一点?
谢谢!
发布于 2011-10-13 17:26:07
因此,您希望确保变量是数字而不是零?
然后你想要这个:
<cfif IsNumeric(MyVar) AND MyVar NEQ 0 >
发布于 2011-10-24 20:13:37
确定字符串是否不是空/空的,并且是数字而不是0?
下面是我在本例中使用的代码。
<cfif isDefined(stringVar) and len((trim(stringVar))) and isNumeric(stringVar)>
do stuff here
</cfif>
如果变量存在,则isDefined返回true。如果你知道变量的作用域,例如,它的形式或url作用域,你可以使用structkeyExists( form,"stringVar")。如果您知道变量的作用域,我建议您使用这种方法。
Len(trim(stringVar))是第二个检查。首先,它从字符串中删除所有前导或尾随空格-这确保不会传递任何空变量。然后如果有东西在那里,它将返回字符串的长度。如果它的空len将返回0。
如果变量是数字,则isNumeric(stringVar)返回true,否则返回false。
发布于 2011-10-13 17:20:48
<cfif Len(field) and Val(field)>
Len()将验证字段是否具有长度(非空--CF中没有NULL),Val()将自动将字符串中的第一个字符转换为数字--如果不能,则返回0。
请注意Peter下面的评论;虽然这是最简单的答案,但Val()在下面的某些边缘条件下可能会失败。该字段是一个字符串,但以数字开头,错误地将其转换为数字,并计算为TRUE。
https://stackoverflow.com/questions/7757827
复制