如何在SQL Server 2008数据类型中存储.NET double?
当我尝试在数字(16,16)列中存储双精度时,我得到一个异常'参数值'1.3465492655247000'超出范围'。因为数字有16位小数,前面有1位。 numeric(16.16)是我在SQL Server中为该类型设置的最大值。
我在C#中创建了一个ADO.NET数据集,并将列设置为十进制。 我将双精度投射到小数。
此site显示SQL Server 2008数据类型
答案 0 :(得分:1)
numeric(16, 16)
允许长度为16的数字,所有16位数字都保留给小数点后的数字。
您可以前往numeric(38, 16)
。这将允许小数点左边最多22位,右边16位。
这并不完全允许±1.0 × 10^28 to ±7.9 × 10^28
的全部范围。如果您需要较大的数字,则需要减少为小数位保留的位数。