sqlserver 如何取消科学计数法

sqlserver查询的float类型如果是0.00000000001的话,会被显示为1E-11,请问怎么才能让查询出的结果显示为正常显示方式而不是科学计数法?现在我自己... sqlserver 查询的 float 类型 如果是0.00000000001的话,会被显示为1E-11,请问怎么才能让查询出的结果显示为正常显示方式而不是科学计数法?
现在我自己想到能用的方法就是先转换为decimal(12,11),然后再转换为varchar类型,但是我的数据如果是小数位数不确定的,decimal会在后面继续补充0,很纠结

有么有什么好的方法?谢谢
说错了……

我现在的方法是让这个数字+1 然后就显示正常了,再转换decimal 再-1
但是位数不确定decimal显示会补充0 …… 求解
展开
 我来答
avatasherk
推荐于2017-11-25 · TA获得超过1034个赞
知道小有建树答主
回答量:747
采纳率:0%
帮助的人:700万
展开全部
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

-----------------------------
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式