SQL Server 2005中的数字可以存储多少位数?

时间:2009-01-06 16:55:22

标签: sql-server-2005 oracle precision significant-digits

我有一个来自Oracle数据库47306832975095894070.85314746810624532的编号。当我把它带入SQL Server时,它肯定不会显示很多数字。它显示为4.73068329750959E + 19,该字段定义为FLOAT。

我认为这可能包含了所有有效数字,但我被问到这个数字是否可以像Oracle那样完全存储。是否有另一种数据类型可以存储所有数字? SQL Server 2005中是否有一种方法可以显示不是指数的数字,而是显示存储的所有数字?

3 个答案:

答案 0 :(得分:3)

使用十进制数据类型。 decimal(p,s) - p是精度值,s是刻度值。

答案 1 :(得分:3)

而不是float,使用Decimal(38,17)。这应该允许您以与Oracle中相同的精度存储数字。

答案 2 :(得分:2)

Sql Server上NUMBER (p,s) Oracle数据类型的等价物是numeric (p,s)数据类型。请注意, p (精度)和 s (比例)的默认值在两个平台上都不相同。

在Sql Server上,float表示一个浮点数,它与数字approximate representation完全不同。在Oracle上,等效的是BINARY_DOUBLE