SQL Server的decimal所占字節數--儲存的格式是什麼?

MasterLonely 2012-04-13 05:01:46
decimal所點字節如下:

精度 存储字节数
1-9 5
10-19 9
20-28 13
29-38 17

想請教大家,實際是用什麼格式存的呢?

我現在的理解:
4bit存一個十進制的BCD碼。5個字節,采用BCD碼,可以存10位數字。存9個數字,還可以存一個小數點。

到了
10-19 9
20-28 13
29-38 17
這個就解釋不通了。

請大家幫幫。謝謝
...全文
436 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingshangwuheng 2014-01-09
  • 打赏
  • 举报
回复
我也遇到这个问题了,楼主解决了么?从fn_dblog解析出来的数据该怎么去解析成decimal呢?应该有一位要指定小数点的偏移吧,但是搞不定呢,网上都没找到相关资料呢
MasterLonely 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

decimal类型可以指定精度(存储的总位数)和小数位数(小数点右边的最大为数),可以存储在小数点左边的最大为数是精度-小数位数。

举个例:decimal(8,4)可以存储-9999.9999——9999.9999之间的数字。
[/Quote]
謝謝

對於 decimal的使用已學會。
現在想更進一步了解:decimal在內存或硬盤上是怎麼存的呢?
如:
small int 占2個字節,總共16位。其中1位是符號位,實際用來存數的就只有15位。最大就是2^15,由於是用補碼的原因,所以是 -32,768 -- 32,767
char是用ascii來存的,所以一個字符占一個字節。

對於decimal我就有點糊塗了。
希望得到指點。謝謝!


  • 打赏
  • 举报
回复
decimal类型可以指定精度(存储的总位数)和小数位数(小数点右边的最大为数),可以存储在小数点左边的最大为数是精度-小数位数。

举个例:decimal(8,4)可以存储-9999.9999——9999.9999之间的数字。
MasterLonely 2012-04-15
  • 打赏
  • 举报
回复
自己顶一下
学习中------- 2012-04-13
  • 打赏
  • 举报
回复
19/2=8,8+1=9

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧