笔者在网上搜了好久,解释都晦涩难懂。最后通过亲手实践加课本知识得出结论如下: 
decimal(M,N) 
M表示:不包括小数点,不包括符号位,所能存数字的总位数(包括小数部分和整数部分) 
N表示:小数部分数字的位数,由此可知整数部分的位数为M-N;

举个例子, 
decimal(4,2) 能够表示的数的范围 -99.99到99.99; 
decimal(4,1)能表示的范围,还要写吗?如果对自己心中的答案有怀疑,自己去实验吧。

特殊处理, 
如果对于decimal(4,2)的列,输入下列值 
输入是99.1 , 存储为99.10 自动补全 
输入是99.12 , 存储为99.12 正常处理 
输入是99.123 ,存储为99,12 (四舍五入处理) 
【注】:我实验的mysql版本是5.6以上,其他版本可能是截断处理,即输入99.129 存储为99.12,而不是99.13。 
另外,四舍五入是从小数点后第三位开始 
如 输入是 99.1249 存储为99.12。 换句话说四舍五入只看小数点后第三位。
--------------------- 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐