Maison > Article > base de données > C#和sqlserver数字数据类型学习
C#数字类型的数据包括decimal, double和 float。以前学过现在忘得都差不多了,现在简单的复习一下。 根据MSDN的解释, decimal类型是128位的浮点数,数据范围是1.010 28 to 7.910 28 ,精度在28-29位有效数字,在一个数字后面加m或M代表它是decimal类型。 do
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 |