我刚刚看到isNumeric('100e00')返回yes而lsisnumeric('100e00')回报no.
我已经检查了另一个十六进制数字(a,b,c,d)但是它们返回no.
有谁知道为什么它被认为100e00是一个数值?
Ada*_*ron 10
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>
Run Code Online (Sandbox Code Playgroud)
这输出:
values:
string: 100e00
numeric: 100
isNumeric()
string: YES
numeric: YES
lsIsNumeric()
string: NO
numeric: YES
Run Code Online (Sandbox Code Playgroud)
功能isNumeric()和lsIsNumeric()略微超出后者的语言环境意识.
isNumeric()声明:"确定字符串是否可以转换为数值 "(我的重点)
lsIsNumeric()声明:"确定字符串是否是数字的有效表示"
你看到了微妙的区别吗?前者会尝试将值强制为数字,而后者只是执行它所说的:告诉你它是否是数字.
| 归档时间: |
|
| 查看次数: |
898 次 |
| 最近记录: |