gpt4 book ai didi

sql - SQLServer 中 Float 的 Len 函数给出了错误的长度

转载 作者:行者123 更新时间:2023-12-05 08:23:35 25 4
gpt4 key购买 nike

我在 SQL Server 中使用以下查询。

declare @dt float
set @dt = 1079938.05
select @dt AS Val,Convert(nvarchar(20),@dt) AS NVal, len(@dt) AS Len

它的输出是

Val         NVal            Len
1079938.05 1.07994e+006 12

我的问题是:

  1. “Val”列显示正确的值。
  2. 'NVal' 列显示奇怪的值,请解释为什么会这样显示?
  3. “Len”显示长度,实际长度为 10,但显示为 12。请解释为什么显示为 12 而不是 10。

最佳答案

sql server 中的 float 可以是 4 字节或 8 字节。 Find details .

LEN() 是一个测量字符串长度的函数。所以您想测量值的字符串表示的长度,而不是值本身。

显示值1.07994e+006为科学计数法,有12个字符。这里没有问题。

您的调用 Convert(nvarchar(20),@dt) 调用 CONVERT() - 函数,默认为 FLOAT 和 REAL ( Details and other formats here ),这对于大于 6 位的数字是科学的。当您调用“len(@dt)”时,同样会隐式发生。由于 LEN() 的输入必须是字符串,因此将值转换后传递给函数。

你可以做什么:

无论如何,您必须考虑,您看到的文本不是真正的值(value)

关于sql - SQLServer 中 Float 的 Len 函数给出了错误的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39740014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com