C#和sqlserver数字数据类型学习

C#数字类型的数据包括decimal, double和 float。以前学过现在忘得都差不多了,现在简单的复习一下。

 

根据MSDN的解释,

decimal类型是128位的浮点数,数据范围是±1.0 × 10−28 to ±7.9 × 1028,精度在28-29位有效数字,在一个数字后面加m或M代表它是decimal类型。

double类型是64位的浮点数,数据范围是±5.0 × 10−324 to ±1.7 × 10308,精度在15-16位有效数字,在一个数字后面加d或D代表它是double类型。正常的带小数点的数字都会默认为double类型,如果想让一个整形作为double类型处理,就在后面加上d或D. 相比之下,decimal类型比double类型精度高,但是范围相对小一些。

float类型是32位的浮点数,数据范围是±1.5 × 10−45 to ±3.4 × 1038,精度是7位,在一个数字后面加f或F代表它是float类型。可以看出,它比decimal类型精度小很多,但是范围要大一些。

 

对于sqlserver里的money类型,它8位的,数据范围在-922,337,203,685,477.5808 到922,337,203,685,477.5807之间得数据类型,

smallmoney则是4位的在- 214,748.3648 到214,748.3647之间。

 

在sqlserver中还有数字类型,就是decimal和numeric,它们是相同的,具有可以指定的精度(有效数字位数)和规格,最大范围是- 10^38 +1 到10^38 - 1。

下表表示了精度和存储位数的关系:

精度 存储位数 

1 - 9

5

10-19

9

20-28

13

29-38

17

 

 

posted @ 2009-12-22 21:23  GodSpeed  阅读(1050)  评论(0编辑  收藏  举报