本帖最后由 欧玉斌 于 2012-11-23 12:18 编辑
翻了书,开了百度,都没有得到答案,
只是看到一种说法:SQL Server 为了和前端开发工具配合其所支持的数据精度默认最大为28 位。
不知道是不是说,存10^38是可以存下的,不过为了配合开发,就只存28位整数了???
但在sql2005操作的时候,却发现,整数部分输入29个数字也是可以的。
如字段score设为numeric(38, 0),我输入12345678901234567890123456789,也未识别出异常,再多输一个的时候,就出错了。
那么vs里有没有这种现象呢?C#里没有numeric,sql里numeric和decimal是一样的,为了测试一下,
我在vs2008里写了decimal a=12345678901234567890123456789m;发现是可以通过的,但多加一个数就出错了。
鼠标选到decimal,转到定义,发现
public const decimal MaxValue = 79228162514264337593543950335m;C#里定义的decimal的最大值是79228162514264337593543950335m(额,不知道这个数怎么来的)
而79228162514264337593543950335也恰巧是29位数。
越搞越郁闷了{:soso_e117:} |