3

这怎么能算是一个数字呢?

<cfquery name="test">
   SELECT ISNUMERIC("8D4") AS isnum
</cfquery>

这返回 1。

我还需要执行其他检查吗?

4

2 回答 2

2

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是.TRUEISNUMERIC()

于 2013-10-04T03:50:31.170 回答
0

您的参数包含D十六进制。 8D4(十六进制)是2260(十进制)

所以它是一个有效的数字,这就是为什么会返回 1。

于 2013-10-03T22:36:09.867 回答