这怎么能算是一个数字呢?
<cfquery name="test">
SELECT ISNUMERIC("8D4") AS isnum
</cfquery>
这返回 1。
我还需要执行其他检查吗?
这怎么能算是一个数字呢?
<cfquery name="test">
SELECT ISNUMERIC("8D4") AS isnum
</cfquery>
这返回 1。
我还需要执行其他检查吗?
D
并且E
被认为是 的特殊情况isNumeric()
。E
很容易证明反映科学记数法:
SELECT ISNUMERIC('8E4'), 8E4
结果是:
1 80000
情况D
不同。网络上的许多资源将其描述为表示十进制数的一种形式,或者只是一种科学记数法。
如果将上面的 SQL 更改为使用,则会出现奇怪的行为D
:
SELECT 8E4, 8D4
在 SQL Studio 中,这会导致:
(No column Name) D4
80000 8
我不是 SQL 专家(任何类型:我只是 CFML 开发人员),但这表明D
之前对小数或 S/N 的描述并不是完整的故事。
但无论故事是什么,有据可查的形式nDn
(数字在哪里)n
是.TRUE
ISNUMERIC()
您的参数包含D
十六进制。
8D4
(十六进制)是2260
(十进制)
所以它是一个有效的数字,这就是为什么会返回 1。