博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL数据类型-decimal详解
阅读量:7085 次
发布时间:2019-06-28

本文共 1118 字,大约阅读时间需要 3 分钟。

1.首先,对于精度比较高的东西,比如money,我会用decimal类型,不会考虑float,double,因为他们容易产生误差,numeric和decimal同义,numeric将自动转成decimal。

DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下:

·M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M 的默认值是10。

·D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。

说明:float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。

如DECIMAL(5,2) 的最大值为9 9 9 9 . 9 9,因为有7 个字节可用。

M 与D 对DECIMAL(M, D) 取值范围的影响

类型说明取值范围(MySQL < 3.23)取值范围(MySQL >= 3.23)

MySQL < 3.23 MySQL >=3.23

DECIMAL(4, 1) -9.9 到 99.9 -999.9 到 9999.9

DECIMAL(5,1) -99.9 到 999.9 -9999.9 到 99999.9

DECIMAL(6,1) -999.9 到 9999.9 -99999.9 到 999999.9

DECIMAL(6,2) -99.99 到 999.99 -9999.99 到 99999.99

DECIMAL(6,3) -9.999 到 99.999 -999.999 到 9999.999

# 在MySQL 3.23 及以后的版本中,DECIMAL(M, D) 的取值范围等于早期版本中的DECIMAL(M + 2, D) 的取值范围。

结论:

当数值在其取值范围之内,小数位多了,则直接截断小数位。

若数值在其取值范围之外,则用最大(小)值对其填充。

推荐阅读:

MySQL备份和恢复具体实施 

MySQL备份与恢复的三种方法总结 

MySQL备份还原(视图、存储过程)  

 

要使用 BC 这个函数库,要在编译 PHP 程序时加入 --enable-bcmath 的选项。

 

bcadd: 将二个高精确度数字相加。

bccomp: 比较二个高精确度数字。

bcdiv: 将二个高精确度数字相除。

bcmod: 取得高精确度数字的余数。

bcmul: 将二个高精确度数字相乘。

bcpow: 求一高精确度数字次方值。

bcscale: 配置程序中所有 BC 函数库的默认小数点位数。

bcsqrt: 求一高精确度数字的平方根。

bcsub: 将二个高精确度数字相减。

 

转载地址:http://qxgml.baihongyu.com/

你可能感兴趣的文章
【转】安卓毛玻璃效果
查看>>
python Django 之 Model ORM inspectdb(数据库表反向生成)
查看>>
Oracle 11.2 静默安装脚本
查看>>
《C++编程思想》(第二版)第3章 C++中的C(笔记、习题及答案)(二)
查看>>
iOS自己主动化測试的那些干货
查看>>
创业的需求分析——创业杂记【1】
查看>>
1098 均分纸牌
查看>>
Android EditText控件即设置最小高度又运行高度随内容增加而变化
查看>>
this指向及改变this指向的方法
查看>>
安装MySQL-python 的问题
查看>>
SQL Server中,varchar和nvarchar如何选择?
查看>>
Django 文件上传
查看>>
Neural networks representation 习题
查看>>
Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (TireTree之位字典树)
查看>>
懒加载预加载(图片)
查看>>
网站的Information Architecture--构建一个最优用户体验的site structure
查看>>
GeoServer地图开发(001)-环境配置
查看>>
点化讲究机缘--剑雨
查看>>
Web Scalability for Startup Engineers Tip&Techniques for Scaling You Web Application --读书笔记
查看>>
App域名劫持之DNS高可用 - 开源版HttpDNS方案详解(转)
查看>>