我通常不在ColdFusion中工作,但是有一个FTP进程正在工作我必须创建一个报告,目前唯一的选择是ColdFusion 8服务器。这个FTP提要有一些问题(也是垃圾)。
所以,我进行查询然后我需要在输出期间转换一些字符串值来做一些数学运算。在那之前:
如何判断输出循环中的字段是否为空或空,是否可以转换为有效数字的字符串,且不是0?
有没有一种简单的方法可以做很多if语句呢?
谢谢!
答案 0 :(得分:10)
所以你想确保变量是数字但不是零?
然后你想要这个:
<cfif IsNumeric(MyVar) AND MyVar NEQ 0 >
答案 1 :(得分:5)
确定字符串是否为空/空并且是否为数字而不是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。
HTH,
拉里
答案 2 :(得分:0)
<cfif Len(field) and Val(field)>
Len()将验证字段是否有长度(非空白 - CF中没有NULL),Val()会自动将字符串中的第一个字符转换为数字 - 如果不能则返回0。
请注意彼得在下面的评论;虽然这是最简单的答案,但Val()可能会在下面的某些边缘条件下失败,即。该字段是一个字符串,但以数字开头,错误地将其转换为数字,并评估为TRUE。
答案 3 :(得分:0)
<cfif isNumeric(myfield) and myfield gt 0>