在SQL中以科学记数法形式存储非常大的数字

时间:2016-08-10 12:07:46

标签: sql asp.net sql-server

我们有一个应用程序,它将指数中的大型计算结果返回到基本形式,如1.8e + 6。

我们需要将此值保存在数据库中。我们可以将它作为整数存储在数据库中,还是应该首先转换为数字?

请帮助

4 个答案:

答案 0 :(得分:3)

SQL Server支持浮点数,包括4字节和8字节。这些以指数表示法接受常量,例如1e4。数学函数也完全支持它们。

您可以阅读documentation中的类型。

答案 1 :(得分:2)

我认为您可以使用的最大值是:

DECLARE @d float(53)

介于-1.79E + 308和1.79E + 308

之间

答案 2 :(得分:1)

SQL将直接使用科学记数法

Select val1 = 1.8e+6
      ,val2 = cast(1.8e+6 as bigint)
      ,val3 = cast('1.8e+6' as float) 

返回

val1    val2    val3
1800000 1800000 1800000

答案 3 :(得分:0)

您可以将1.8e + 6直接插入到" int"类型的表列中,它将被解释(使用SQL Server 2014测试)。

请注意" int"只能处理大小为1.8e + 31的数字,对于较大的数字,你需要使用bigint。