我有一个来自Oracle数据库47306832975095894070.85314746810624532的编号。当我把它带入SQL Server时,它肯定不会显示很多数字。它显示为4.73068329750959E + 19,该字段定义为FLOAT。
我认为这可能包含了所有有效数字,但我被问到这个数字是否可以像Oracle那样完全存储。是否有另一种数据类型可以存储所有数字? SQL Server 2005中是否有一种方法可以显示不是指数的数字,而是显示存储的所有数字?
答案 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。