以下内容转自:http://blog.csdn.net/zhanghao143lina/article/details/53816884

三者的区别介绍

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)

double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)

decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

按存储的范围进行排序

float(real)

double

decimal(numeric)

decimal的详细介绍

decimal(a,b)

参数说明

a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。

b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。

备注

DECIMAL数据类型用于要求非常高的精确度的计算中,这些类型允许指定数值的精确度和计数方法作为选择参数。精确度在这里是指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的个数。例如,语句DECIMAL (5,2)规定了存储的值将不会超过5位数字,开且小数点后面有2位数字。

实例

SQL 代码   复制

float f = 345.98756f;--结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。

double d=345.975423578631442d;--结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。

--注:float和double的相乘操作,数字溢出不会报错,会有精度的损失。

decimal dd=345.545454879.....--可以支持28位,对最后一位四舍五入。

--:当对decimal类型进行操作时,数值会因溢出而报错。

总结

数值存储范围越小的精度越高,存储数值范围越大,精度就越不准确,如果存储正常金额的情况下,使用money,好处在于可以存储不指定的小数点位数的数值,比较真实。如果对于既要求精度,又固定小数点位数的数值存储,采用decimal(numeric),优点在于可以自定义小数点位数,精度高。如特殊情况,如数值范围巨大只能用float(real)类型了,此类型一般不提倡使用。

以下内容为自己总结:

mysql中的decimal字段,声明语法为DECIMAL(M,D)。

DECIMAL(M,D)中D值的是小数部分的位数,若插入的值未指定小数部分或者小数部分不足D位则会自动补到D位小数,若插入的值小数部分超过了D为则会发生截断,截取前D位小数(四舍五入截取)。M值得是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过M-D位,否则不能成功插入,会报超出范围的错误。

decimal精度类型,函数完整格式DECIMAL(M,D)

M是是只的最大精度数位,1-65

D是小数点右侧数位0-30

举例说明,11615.23653234568这个数存你说的三个格式

decimal:11615

decimal(3):999

decimal(3,2):9.99

decimal(10,5)11615.23653

超出精度范围的数会被强制进位并只显示数据类型定义的格式

mysql decimal长度_mysql decimal类型与decimal长度用法详解相关推荐

  1. mysql timestamp 前一天_mysql之TIMESTAMP(时间戳)用法详解

    二.TIMESTAMP列类型 TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示. TIMESTAMP值显示尺寸的格式如下表所示: "完整" ...

  2. mysql identity sql_SQL Server中identity(自增)的用法详解

    一.identity的基本用法 1.含义 identity表示该字段的值会自动更新,不需要我们维护,通常情况下我们不可以直接给identity修饰的字符赋值,否则编译时会报错 2.语法 列名 数据类型 ...

  3. mysql基本数据长度_MySQL的类型与数据长度

    之前遇到一个问题"怎么评估一行MySQL记录占据了多少字节?".自己当时也不是特别清楚.当时只是简单的知道,具体的长度跟编码相关.前几天系统研究了一下MySQL中的编码问题,铺垫已 ...

  4. mysql 同步 异步_MySQL异步复制、半同步复制详解

    MySQL数据复制的原理图大致如下: 从上图我们可以看出MySQL数据库的复制需要启动三个线程来实现: 其中1个在主服务器上,另两个在从服务器上.当发出START SLAVE时,从服务器创建一个I/O ...

  5. mysql二进制文件复制_MySQL 主从复制:基于二进制文件复制配置详解

    ##MySQL-主从复制:基于二进制文件复制详解 ###前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作 ...

  6. mysql 账户管理_Mysql账户管理原理与实现方法详解

    本文实例讲述了Mysql账户管理原理与实现方法.分享给大家供大家参考,具体如下: 账户管理 在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然 ...

  7. mysql shutdown 命令_Mysql 5.7.9 shutdown 语法实例详解

    mysql-5.7.9 终于提供shutdown 语法啦: 之前如果想关闭一个mysql数据库可以通过kill 命令.mysqladmin shutdown .service mysqld stop ...

  8. mysql timestamp _mysql之TIMESTAMP(时间戳)用法详解

    一.TIMESTAMP的变体 TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如: 1.在创建新记录和修改现有记录的时候都对这个数据列刷新: TIMESTAMP DEFAULT CURREN ...

  9. mysql 字符串 底层_Mysql 的索引底层原理及数据结构详解

    Mysql 的索引底层原理 1.什么是索引? 索引是一种排好序的数据结构,mysql目前默认使用的是b+树. 2.为什么使用b+树? 例如表table 数据 id name 1 zs 2 ls 3 s ...

  10. mysql 存储引擎作用_MySQL常用存储引擎功能与用法详解

    MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE.NDB Cluster.ARCHIVE.CSV. ...

最新文章

  1. 用java的io做一个代码计数器,如何制作Java页面计数器_java
  2. 从软件工程的角度解读任正非的新年公开信
  3. npm命令,开发依赖,版本号【正解】
  4. 《剑指Offer》62:圆圈中最后剩下的数字(约瑟夫环)
  5. 程序员怎样上元宇宙的车?
  6. 大数据技术周报第 006 期
  7. java stream Interface BiFunction<T,U,R>
  8. 201521123033《Java程序设计》第3周学习总结
  9. 项目SOW工作说明书模板
  10. NCBI获取指定区域基因序列及其引物设计
  11. Illustrator CS3自学实例高清视频教程
  12. Ubuntu 解压缩7z文件
  13. Bandizip6.27百度网盘
  14. 05JS实现弹性相册
  15. 算法笔记之狄克斯特拉算法
  16. 智能手环方案开源(含源码,原理图,APP,通信协议等) ...
  17. windows程序设计相关思想
  18. 332B. Maximum Absurdity
  19. 【Python】【setFocus】焦点
  20. python判断性别的源代码_python 通过手机号识别出对应的微信性别(实例代码)

热门文章

  1. USART发生overrun错误,如何去导致这种错误发生呢
  2. BCGControlBar Pro 31.3 for MFC 零售版
  3. Javascript, 得到鼠标绝对坐标
  4. 项目管理中的变更管理
  5. smartqq协议java_基于SmartQQ协议的QQ聊天机器人-3
  6. 2017年7月13日21:31:13
  7. 邻近搜索(Annoy HNSW LSH KD tree)
  8. Allegro导入PADS文件
  9. 使用记事本编写Ps脚本
  10. 电销机器人对销售人员工作开展有什么帮助?