0

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

我认为这可能包括所有有效数字,但有人问我这个数字是否可以完全按照 Oracle 的方式存储。是否有另一种数据类型可以存储所有数字?SQL Server 2005 中有没有办法以非指数形式显示数字,而是显示所有存储的数字?

4

3 回答 3

3

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

于 2009-01-06T16:57:49.230 回答
3

使用小数(38,17)代替浮点数。这应该允许您以与 Oracle 中相同的精度存储数字。

于 2009-01-06T16:58:22.710 回答
2

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

在 Sql Server 上,浮点数表示一个浮点数,它是一个完全不同的数字的近似表示。在 Oracle 上,相当于BINARY_DOUBLE

于 2009-01-06T17:17:10.097 回答