sql server 精度、小数位数和长度
(2012-10-03 09:03:45)
标签:
杂谈 |
分类: 电脑数学 |
精度是数中的数字个数。小数位数是数中小数点右边的数字个数。例如,数 123.45 的精度是 5,小数位数是2。
numeric
数字数据类型的长度是存储此数所占用的字节数。字符串或 Unicode
数据类型的长度是字符个数。binary、varbinary、和
当两个
当两个
除了
下表定义了当运算的结果是
- 两个表达式是
decimal 类型。
- 一个表达式是
decimal 类型,而另一个是比 decimal 优先顺序低的数据类型。
操作数表达式由表达式 e1(精度为 p1,小数位数为 s1)和表达式 e2(精度为 p2,小数位数为
s2)来表示。非
操作 | 结果精度 | 结果小数位数 * |
---|---|---|
e1 + e2 | max(s1, s2) + max(p1-s1, p2-s2) + 1 | max(s1, s2) |
e1 - e2 | max(s1, s2) + max(p1-s1, p2-s2) | max(s1, s2) |
e1 * e2 | p1 + p2 + 1 | s1 + s2 |
e1 / e2 | p1 - s1 + s2 + max(6, s1 + p2 + 1) | max(6, s1 + p2 + 1) |
* 结果精度和小数位数有绝对最大值 38。当结果精度大于 38 时,相应的小数位数会减少,以避免结果的整数部分被截断。