float,double,decimal区别

创建表test_float_double_decimal

CREATE TABLE `test_float_double_decimal` (

`id` int(11) NOT NULL COMMENT 'id',

`float7.4` float(7,4) NOT NULL,

`float255.30` float(255,30) NOT NULL,

`double15.4` double(15,4) NOT NULL,

`double255.30` double(255,30) NOT NULL,

`decimal10.4` decimal(10,4) NOT NULL,

`decimal65.30` decimal(65,30) NOT NULL,

`float_default` float NOT NULL,

`double_default` double NOT NULL,

`decimal_default` decimal(10,0) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `test_float_double_decimal`(`float7.4`, `float255.30`, `double15.4`, `double255.30`, `decimal10.4`, `decimal65.30`, `float_default`, `double_default`, `decimal_default`) VALUES (789.123456789,123456789.123456789,123456789.123456789,123456789.123456789,789.123456789,123456789.123456789,123456789.123456789,123456789.123456789,123456789.123456789);

INSERT INTO `test_float_double_decimal`(`float7.4`, `float255.30`, `double15.4`, `double255.30`, `decimal10.4`, `decimal65.30`, `float_default`, `double_default`, `decimal_default`) VALUES (789.123456789,12345678987654321.12345678987654321,12345678987.12345678987654321,12345678987654321.12345678987654321,789.12345678987654321,12345678987654321.12345678987654321,12345678987654321.12345678987654321,12345678987654321.12345678987654321,1234567898.12345678987654321);

第一条数据插入后,float都跑偏了,double还算正常(最后位值四舍五入),decimal正常(最后位值四舍五入)。

第二条数据插入后发现,float跑偏最严重,double也开始有些跑偏。decimal最正常。

decimal详情

decimal(a,b)

参数说明

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

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

备注

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

总结:像坐标,钱这样的数据,对于精度要求高的,可以采用decimal来进行存储。

decimal(10,2) 表示钱,decimal(10,6)可以表示坐标。

项目中的数据表中存储坐标,使用了float,结果如下。

数据都丢失了,本来后面是6位小数的,经过上面的实验总结,适合改为使用decimal来进行存储,double也还可以,不过需要设置好位数。

mysql decimal 实现_mysql中decimal的使用相关推荐

  1. mysql decimal 类型_MySQL中decimal类型用法的简单介绍

    MySQL中支持浮点数的类型有FLOAT.DOUBLE和DECIMAL类型,DECIMAL 类型不同于FLOAT和DOUBLE,DECIMAL 实际是以串存放的.DECIMAL 可能的最大取值范围与D ...

  2. mysql numeric 区别_Mysql中NUMERIC和DECIMAL类型区别比较

    decimal(numeric ) 同义,用于精确存储数值 . decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边.decimal 数据类型存储了一个准确(精确)的数字表 ...

  3. decimal类型对象里面定义什么类型_MySQL中Decimal类型和Float Double的区别(详解)

    MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形 ...

  4. mysql decimal 类型_MySQL数据类型DECIMAL用法详解

    MySQLDECIMAL数据类型用于在数据库中存储精确的数值.我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据. 要定义数据类型为DECIMAL的列,请使用以下语法: ...

  5. mysql add decimal类型_MySQL数据类型DECIMAL用法

    前言: 当我们需要存储小数,并且有精度要求,比如存储金额时,通常会考虑使用DECIMAL字段类型,可能大部分同学只是对DECIMAL类型略有了解,其中的细节还不甚清楚,本篇文章将从零开始,为你讲述DE ...

  6. php验证mysql内数据_MySQL中数据类型的验证_MySQL

    CHAR char (M) M字符,长度是M*字符编码长度,M最大255. 验证如下: mysql> create table t1(name char(256)) default charse ...

  7. mysql自定义数据类型_MySQL中的数据类型

    一.MySQL中的数值类型分类 MySQL中数值类型主要有三类:数字类型,字符串类型,时间类型. 1.数字类型 1.1整数 tinyint  1字节 smallint               2字 ...

  8. mysql int(3)_MySQL中int(11)与int(3)的区别_MySQL

    11.2. 数值类型 MySQL支持所有标准SQL数值数据类型.这些类型包括严格数值数据类型(INTEGER.SMALLINT.DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT.RE ...

  9. mysql提取数字_Mysql中实现提取字符串中的数字的自定义函数分享

    因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代 ...

最新文章

  1. 基于 OpenCV 的网络实时视频流传输
  2. 未来已来:全球XR产业洞察
  3. cf round #421 div2 D. Mister B and PR Shifts
  4. C语言二叉搜索树返回key的树级(附完整源码)
  5. CSS基础(part13)--浮动
  6. 《Python Cookbook 3rd》笔记(5.21):序列化 Python 对象
  7. 60秒一口Python:147个demo,助你从新手小白步步进阶编程高手,赶紧收藏!!
  8. 如何使用SwitchyOmega.crx谷歌插件
  9. 阿里云mysql可视化_MySql可视化工具MySQL Workbench使用教程
  10. HustOJ 基础搭建教程
  11. TEXMACS在ubuntu下的使用
  12. CSS为字体添加过度色
  13. AI把英语系新生吓退学?别急,我们从来都是那只懒蚂蚁
  14. buuctf [ElasticSearch]CVE-2015-1427
  15. monkey测试中防止关闭WIFI的方法
  16. DSL 领域特定语言
  17. Redis数据莫名其妙全部丢失
  18. “文件或目录损坏且无法读取”的简单修复
  19. David想对asc码进行位运算
  20. 噗浪(Plurk)创办人 -- 云惟彬:低薪陷阱 廉价的薪水 等待的成本

热门文章

  1. 计算机无法进入网络官网,详细教您怎么解决无法启动承载网络
  2. [JavaScript]获取鼠标点击区域的相对、绝对位置坐标
  3. Android--- Layout
  4. “东数西算”全面启动 2022中国数字经济呈现新格局
  5. python模拟拖拽文件_python 基于selenium实现鼠标拖拽功能
  6. 【华为机试真题 Python】航班预定座位数
  7. 阳了后,会重复感染吗?
  8. 参考文献格式修改[3-5]形式(连续多项引用)
  9. Delphi 用ADOQuery连接查询数据库并查询数据并返回结果
  10. react 子组件使用 props.history.push 无法跳转或者显示pushunderfind 问题