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

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

有帮助吗?

解决方案

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

在Sql Server上,浮动表示一个完全不同的浮点数,数字的近似表示。在Oracle上,等效的是 BINARY_DOUBLE

其他提示

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

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

scroll top