在网上搜了好几个关于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) 是将某种数据类型的表达式显式转换为另一种数据类型