SQL中的decimal()函数的使用

decimal(10,2) 是什么意思 在一个表中

 
 decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。

“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入,会报超出范围的错误。

SQL中的decimal()函数的使用

        decimal一般用于对精度要求高的,比如与金钱相关的,用整型和浮点型都不行了,才会用到decimal,或者用于sql查询中也可以

         decimal(a,b)

         a:指的是整数和小数所能存的最多的位数

         b:指的是小数数字的位数,即a-b就是整数的位数

1.

如上图:将1.11111111转成总位数9位,小数位是5位,得出的1.11111,因为小数位是五位,整数只有1位,所以才得出是1.111111

2.

如上图,总位数是5位,小数位要求4位,但是99.123只有三位,总位数要求5位,所以就造成了精度缺失,具体内部是怎么造成,目前还不是很清楚。结果就成了9.9999.

如果decimal(5,3),则输入的是99.123

注:CAST(expr AS type) 是将某种数据类型的表达式显式转换为另一种数据类型

posted @ 2019-08-23 16:32  java小菜鸡2号  阅读(42917)  评论(1编辑  收藏  举报