coldfusion - isNumeric ('100e00' ) 返回 yes 而 lsisnumeric ('100e00' ) 返回 no

标签 coldfusion

我刚刚看到了 isNumeric('100e00')返回 yeslsisnumeric('100e00')返回 no .

我检查了另一个十六进制数字(a,b,c,d),但它返回 no 。

有谁知道为什么要考虑它100e00作为数值?

最佳答案

100e00是科学记数法,即:100 * 10^0,或:100。

<cfset string = "100e00">
<cfset numeric = val(string)>
<cfoutput>
values:<br />
string: #string#<br />
numeric: #numeric#<br />
<hr />
isNumeric()<br />
string: #isNumeric(string)#<br />
numeric: #isNumeric(numeric)#<br />
<hr />
lsIsNumeric()<br />
string: #lsIsNumeric(string)#<br />
numeric: #lsIsNumeric(numeric)#<br />
</cfoutput>

这输出:
values:
string: 100e00
numeric: 100
isNumeric()
string: YES
numeric: YES
lsIsNumeric()
string: NO
numeric: YES

isNumeric() 的功能和 lsIsNumeric() 略有不同,超出了后者的区域设置意识。

isNumeric() 说明了这一点:
“确定字符串是否可以转换为数值”
(我的重点)

lsIsNumeric() 指出:
“确定一个字符串是否是一个数字的有效表示”

你看到细微的差别了吗?前者会试图强制该值是一个数字,而后者只是按照它所说的去做:告诉你它是否是一个数字。

关于coldfusion - isNumeric ('100e00' ) 返回 yes 而 lsisnumeric ('100e00' ) 返回 no,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14772888/

相关文章:

javascript - <cfmediaplayer> 如何通过 javascript 调用暂停播放器?

coldfusion - 如何检索 enablecfoutputonly 的当前值?

java - 来自 ColdFusion 应用程序的 MySQLNonTransientConnectionException

variables - 创建动态命名变量

javascript - 首先从 Google 的 CDN 加载 jQuery,然后是本地服务器

loops - CFSCRIPT - For 循环 - 如何增加 50 或 100?

javascript - BIND后调用JS函数?

amazon-web-services - Amazon S3 - 当文件被 s3cmd 删除时,ColdFusion 的 fileExists 中断

coldfusion - 如果 structKeyExists 和 value 是 this 否则这样做