sqlserver 如何取消科学计数法
sqlserver查询的float类型如果是0.00000000001的话,会被显示为1E-11,请问怎么才能让查询出的结果显示为正常显示方式而不是科学计数法?现在我自己...
sqlserver 查询的 float 类型 如果是0.00000000001的话,会被显示为1E-11,请问怎么才能让查询出的结果显示为正常显示方式而不是科学计数法?
现在我自己想到能用的方法就是先转换为decimal(12,11),然后再转换为varchar类型,但是我的数据如果是小数位数不确定的,decimal会在后面继续补充0,很纠结
有么有什么好的方法?谢谢
说错了……
我现在的方法是让这个数字+1 然后就显示正常了,再转换decimal 再-1
但是位数不确定decimal显示会补充0 …… 求解 展开
现在我自己想到能用的方法就是先转换为decimal(12,11),然后再转换为varchar类型,但是我的数据如果是小数位数不确定的,decimal会在后面继续补充0,很纠结
有么有什么好的方法?谢谢
说错了……
我现在的方法是让这个数字+1 然后就显示正常了,再转换decimal 再-1
但是位数不确定decimal显示会补充0 …… 求解 展开
展开全部
float 和 real
用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。
解决float科学计数的问题只能靠转换,decimal(12,11)会自动补全到小数点后11位。
您可以试试这样转化:
先建一个测试表:
CREATE TABLE dbo.sci_notation
(
num float
)
INSERT INTO dbo.sci_notation
VALUES
(0.0000000001)
---------------------------------------------
因为不清楚所有表中float的小数位,所以转换成decimal尽量大点,我选了decimal(38,28),保留28位小数。先转成varchar,然后对varchar进行去0操作。
select replace(rtrim(replace(convert(varchar,cast(num as decimal(38,28))),'0',' ')),' ','0')
from dbo.sci_notation
-----------------------------
(No column name)
0.0000000001
-----------------------------
用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。
解决float科学计数的问题只能靠转换,decimal(12,11)会自动补全到小数点后11位。
您可以试试这样转化:
先建一个测试表:
CREATE TABLE dbo.sci_notation
(
num float
)
INSERT INTO dbo.sci_notation
VALUES
(0.0000000001)
---------------------------------------------
因为不清楚所有表中float的小数位,所以转换成decimal尽量大点,我选了decimal(38,28),保留28位小数。先转成varchar,然后对varchar进行去0操作。
select replace(rtrim(replace(convert(varchar,cast(num as decimal(38,28))),'0',' ')),' ','0')
from dbo.sci_notation
-----------------------------
(No column name)
0.0000000001
-----------------------------
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询