指数的SQL数据类型

指数的SQL数据类型,sql,sql-server,tsql,sql-server-2008-r2,Sql,Sql Server,Tsql,Sql Server 2008 R2,SQL Server 2008 R2中存储1.74269E-06等值的最佳数据类型是什么 我试图将其设置为浮动,但该值始终为零。请给我一些建议 蒂亚 在这方面,请改用十进制 十进制[(p[,s])]和数字[(p[,s])]固定精度和比例 数字。使用最大精度时,有效值为-10^38 +1到10^38-1。十进制的ISO同义词是dec和dec(p,s)。numeric在功能上等同于decimal 当我将该值插入float的数据类型时,它不是零 您可能不小心将其强制转换为INT或显示不正确 如果您的值

SQL Server 2008 R2中存储1.74269E-06等值的最佳数据类型是什么

我试图将其设置为浮动,但该值始终为零。请给我一些建议

蒂亚


在这方面,请改用十进制

十进制[(p[,s])]和数字[(p[,s])]固定精度和比例 数字。使用最大精度时,有效值为-10^38 +1到10^38-1。十进制的ISO同义词是dec和dec(p,s)。numeric在功能上等同于decimal


当我将该值插入float的数据类型时,它不是零

您可能不小心将其强制转换为INT或显示不正确

如果您的值将非常大或非常小(并且不能保留为十进制),则需要使用
FLOAT

DECLARE @Table TABLE (F FLOAT, D DECIMAL(19,7))

INSERT INTO @Table (F,D)
VALUES(1,1)

INSERT INTO @Table (F,D)
VALUES(1.74269E-06,1.74269E-06)

-- I can see the float here in exponential format
SELECT F,D FROM @Table

-- I can see it here in decimal format
SELECT CONVERT(DECIMAL(19,7),F),D FROM @Table

-- But if I cast to INT it disappears.
SELECT CONVERT(INT,F),D FROM @Table

尝试
decimal
。您的值是样本中的格式还是数值?小数点后需要支持多少位?
decimal
FLOAT
<代码>浮动如果指数变得更大。你投入的价值是什么,你是如何投入的?发布一个脚本来重现这个问题。也许这会对你有所帮助:我正在尝试创建一个存储过程。在内部,有一个变量如下:SET Var2=0.049747*(0.32931007+1.669994*Var1-(POWER(44.002253*Var1,2))+(POWER(735.18335*Var1,3))-(POWER(4749.7294*Var1,4))。。如果我用excel计算,结果应该是1.74269E-06。这就是为什么我会问,这种值的最佳数据类型是什么?最后,我使用float作为指数数学的数据类型。干杯