mysql列类型二——小数类型(float,double,decimal)

MySQL 列类型:小数类型(Float、Double、Decimal)面试详解 MySQL 小数类型├── 浮点型(可能丢失精度)│ ├── Float(单精度)│ │ ├── 4 字节,~10^38│ │ ├── ~7 位有效精度│ │ ├── 支持 FLOAT(M,D)│ │ ├── 支持科学计数法│ │ └── 精度丢失 → 四舍五入│ └── Double(双精度)│ ├── 8 字节,~10^308│ ├── ~15 位有效精度│ └── 本质仍是浮点数│└── 定点型(保证精度)├── 动态分配存储(~每9数/4字节) 阅读详情
AI摘要

本文详细介绍了MySQL中的小数类型,包括浮点型和定点型的区别及应用场合。阐述了浮点型(如Float和Double)如何在牺牲一定精度的情况下存储较大数值,以及定点数(如Decimal)如何确保数据的精确性。

小数类型

专门用来存储小数的

在Mysql中将小数类型又分为两类:浮点型和定点型

浮点型

浮点型又称之为精度类型:是一种有可能丢失精度的数据类型,数据有可能不那么准确(由其是在超出范围的时候)

浮点型之所以能够存储较大的数值(不精确),原因就是利用存储数据的位来存储指数

 

整型:所有位都为1

1

1

1

1

1

1

1

1

计算结果:10^8-1

浮点型:有部分用于存储数据,有部分用于存指数

1

1

1

1

1

1

1

1

前三位转换成十进制之后用作10的指数: 10^7 * 数据值

Float

Float又称之为单精度类型:系统提供4个字节用来存储数据,但是能表示的数据范围比整型大的多,大概是10^38;只能保证大概7个左右的精度(如果数据在7位数以内,那么基本是准确的,但是如果超过7位数,那么就是不准确的)

基本语法

Float:表示不指定小数位的浮点数

Float(M,D):表示一共存储M个有效数字,其中小数部分占D位

Float(10,2):整数部分为8位,小数部分为2位

1.创建一个表

2.存入合法数据

精度大概在7位左右

注意:如果数据精度丢失,那么浮点型是按照四舍五入的方式进行计算

3、 插入数据,超出大小

报 out of range错误:值超出列类型的范围

4、 数据长度刚好满足条件,但是会超出精度

说明:用户不能插入数据直接超过指定的整数部分长度,但是如果是系统自动进位导致,系统可以承担。

5、浮点数可以采用科学计数法来存储数据

9e5也就是9*10^5

Double

Double又称之为双精度:系统用8个字节来存储数据,表示的范围更大,10^308次方,但是精度也只有15位左右。

总结:

浮点数的应用:通常是用来保存一些数量特别大,大到可以不用那么精确的数据,如果要更精确的 往下看

定点数

Decimal定点数:系统自动根据存储的数据来分配存储空间,每大概9个数就会分配四个字节来进行存储,同时小数和整数部分是分开的。

定点数:能够保证数据精确的小数(小数部分可能不精确,超出长度会四舍五入),整数部分一定精确

Decimal(M,D):M表示总长度,最大值不能超过65,D代表小数部分长度,最长不能超过30。

1.创建表(与浮点数对比)

2、 插入正常数据

decimal精确 而float类型的列进位了

3.插入最大数据

decimal精确 而float类型的列进位了

4、 尝试定点数进行四舍五入

定点数如果整数超出长度也会报错

定点数的应用:如果涉及到钱的时候有可能使用定点数 


深入解析 MySQL 数据类型:DECIMAL、FLOAT 和 DOUBLE 的比较与应用场景 MySQL 数据库中的数值类型 DECIMAL、FLOAT 和 DOUBLE 在存储数值时具有不同的特性和用途。DECIMAL 以固定精度存储精确小数值,FLOAT 和 DOUBLE 则是近似数值类型,提供不同范围和精度的浮点数存储。本文将探讨这些数据类型的差异,涵盖它们在不同应用场景下的优劣势、存储空间、性能影响、实际应用举例、比较分析以及最佳实践建议,助您更好地选择适合您数据库需求的类型。 阅读详情

相关推荐

制造业信息化的现实困局与未来展望:从基础到数字化的挑战与机遇

随着全球科技的发展和市场竞争的加剧,制造业的转型升级成为企业必须面临的挑战。在信息化和数字化的浪潮下,许多企业试图通过技术创新来提升自身竞争力。然而,现实情况是,绝大部分制造业企业的基本信息化都尚未完成,更遑论复杂的数字化。那么,制造业在信息化进程中面对哪些阻碍?未来又该如何实现从基础信息化到数字化的转型?

Yz2024的博客 2982

mysql类型float_Mysql数据类型---FLOAT

标签(空格分隔): MYSQLMYSQL版本:MYSQL5.7基本语法FLOAT(浮点类型)用来存储很大或很小的值。这可能是由小数点前的30位、100位或者更多位组成的数字,或者小数点后拥有很多位的数字。考虑那些小数点后的位数为无限多的数值,例如众所周知的圆周率,1/3。然而对于一个浮点类型可用的存储空间有限,有时候无法存储真正的数值。如果一个数值非常大或非常小,将会存储一个近似值。这就是为什么有...

weixin_27645199的博客 2万+

V.PhyloMaker实战:从物种列表到维管束植物系统发育树的完整流程

本文详细介绍了使用V.PhyloMaker工具包,从物种列表快速构建维管束植物系统发育树的完整实战流程。内容涵盖R包安装、物种名标准化、核心函数phylo.maker的三种构建方案选择、结果树的可视化与导出,以及与picante包的联动分析,为生态学和生物地理学研究提供了高效解决方案。

weixin_29057237的博客 374

【mysql】浮点类型

浮点类型浮点数和定点数类型的特点是可以处理小数,你可以把整数看成小数的一个特例。因此,浮点数和定点数的使用场景,比整数大多了。MySQL支持的浮点数类型,分别是。FLOAT表示单精度浮点数;DOUBLE表示双精度浮点数;REAL默认就是DOUBLE。如果把 SQL 模式设定为启用“”,那 么,MySQL 就认为REAL是FLOAT。如果要启用“”,可以通过以下 SQL 语句实现:FLOAT 和 DOUBLE 这两种数据类型的区别是什么?FLOAT占用字节数少,取值范围小;DOUBLE。

qq_43842093的博客 5335

N32在Keil中J-Link识别失败的排查与修复指南

本文详细解析了在Keil开发环境中,J-Link调试器无法识别N32系列MCU的常见问题。通过分步指导,从检查修改Keil工程配置文件、更新J-Link驱动,到手动添加N32专用设备支持包,系统性地提供了排查与修复方案,帮助开发者快速恢复调试连接,确保开发流程顺畅。

299

华为云Stack 8.X 流量模型分析(一)

​ 当内部需要提供对外服务时(如对外发布Web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布。​ 内部地址要访问公网上的服务时(如Web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。

Ciyaso的博客 3240

MySQL中float、double、decimal三个浮点类型的区别与总结!

那么多浮点用哪个?

极客小俊 1万+

BSD盲区检测系统性能要求及试验方法

盲区监测系统BSD通过安装在车辆后方的两颗毫米波雷达实时监测驾驶员视野盲区,当发现视野盲区内出现其它道路使用者时,通过左右后视镜上的警示灯向驾驶员发出报警。

未知艺术家的博客 2355

MySQL 小数类型详解

对于保证精度的数字,MySQL 也有对应的小数类型,下图是 MySQL 中小数类型概览。浮点:小数点非固定的数,可表示数据范围较广,整数,小数都可表示。定点:小数点固定,可表示整数,小数。int(整数)本质是小数点位于末尾的 32 位定点数而已。-- 建表-- 写入f1f2100100.00单精度:使用 4 个字节存储,有效数字为 8 位,MySQL 中的 float 类型为单精度。双精度:使用 8 个字节存储,有效数字为 16 位,MySQL 中的 double 类型为双精度。

分享既学习 4542

直流电源滤波电路的设计与优化:从基础原理到高效应用

本文深入探讨直流电源滤波电路的设计与优化,从基础原理到高效应用全面解析。重点介绍电容滤波和电感滤波的工作原理及实战设计要点,分享复合滤波电路的进阶技巧,并提供常见问题排查指南。文章还涵盖现代滤波技术的新发展,如有源滤波和数字控制滤波的应用,帮助工程师提升电源系统的稳定性和效率。

weixin_29255731的博客 175

【Python深度学习】做深度学习训练时,如果数据集太大,无法一次性加载进GPU,应该如何做?

方法核心思想优点缺点适用场景实现复杂度小批量训练(Mini-Batch Training)与数据加载器(DataLoader)将数据集划分为小批量,每次只加载一个小批量到GPU中进行训练。- 易于实现- 是深度学习的标准做法- 支持多进程加载- 内存可能成为瓶颈- 需要调整批量大小避免内存不足适用于大部分场景低数据分片与分布式训练(Data Sharding & Distributed Training)将数据集分片,每个GPU或节点处理其中一部分数据,分布式训练。

若北辰 1141

mysql:列类型之float、double

环境: window10 vs2022 .net 6 mysql 8.0.25 DBeaver 参考: 《MSDN:浮点数值类型(C# 引用)》 《mysql:11.1.4 Floating-Point Types (Approximate Value) - FLOAT, DOUBLE》 1. float和double类型 在mysql中,float和double都是浮点数类型: float 占4个字节,精度是6位; double 占8个字节,精度是16位; 它们的性质和c#中浮点数的性质是一样

火焰 1万+

fanuc机器人I/O分配

FANUC机器人在和其他外部设备进行通讯时,需要对信号进行配置。 在机器人处于UOP自动分配状态时,系统会自动检索已配对设备,并分配相应的机架号。 当我们需要手动对信号进行分配时,可参考以下机架号进行配置。 不同的通讯协议对应的机架号不同,外部通讯协议常用的机架号参考下表: 序号 机架号 通讯类型 1 0 Process I/O 2 1-15

haier123888的博客 1万+

mysql中float、double、decimal的区别

float类型表示单精度浮点数值,double类型表示双精度浮点数值,float和double都是浮点型,而decimal是定点型; MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(5,2)的 可显示为999.99,MySQL保存值时会进行四舍五入,如果插入999.009,则结果为999.01。 ...

Mr.Xie的博客 8万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

MySQL面试必问的decimal与float, double的问题

decimal与float, double的区别是什么?

小白的大数据之旅的博客 1200

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

MySQL数值类型——FLOAT、DOUBLE和DECIMAL类型

MySQL支持的三个浮点类型是FLOAT、DOUBLE和DECIMAL类型。FLOAT数值类型用于表示单精度浮点数值,而DOUBLE数值类型用于表示双精度浮点数值。   与整数类型一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。例如,语句FLOAT (5,2

HUGEHEADHUGE的专栏 6万+

3、(小数类型)FLOAT、DOUBLE、DECIMAL

MySQL 中使用浮点数和定点数来表示小数。 浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE); 定点类型只有一种,就是 DECIMAL。 浮点类型和定点类型都可以用(M, D)来表示,其中M称为精度,表示总共的位数;D称为标度,表示小数的位数。 浮点数类型的取值范围为 M(1~255)和 D(1~30,且不能大于 M-2),分别表示显示宽度和小数位数。M 和 D 在 FLOAT 和DOUBLE 中是可选的,FLOAT 和 DOUBLE 类型将被保存为硬件所支持的最大精度。

you can you up up up的博客 2584

如何在数据库中存储小数:FLOAT、DECIMAL还是BIGINT?

在小数类型存储上,MySQL提供了多种类型的选择,如FLOATDOUBLEDECIMALBIGINT类型,都可以对小数进行存储。不过往往在某个场景下,只有一个类型才最满足要求。本文详细介绍了各种数据类型,同时在数据精度,存储效率,执行效率,代码复杂性等维度上对其进行了比较,展示了其长处和相对应的缺点。从而能够在数据库设计时,作出更准确,更高效的选择。菜鸟额引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构。

sdgfafg_25的博客 3156

MySQL decimal、float、double用法说明

文章目录1. 按2. 三者精度区别3. 用法介绍4. DECIMAL的存储需求5. 实例 1. 按 本文主要介绍Decimal的相关知识,对于float和double,由于本身就比较常见,且容易理解,因此不做太多介绍,在本文中进行介绍时,主要是与Decimal进行对比,让读者在比较中更加容易理解Decimal。 2. 三者精度区别 类型名称 存储需求 有效位 float 4字节 6(本人实际测试数值) double 8字节 16(本人实际测试数值) decimail(M,D) 具体字

COCO56的博客 3377

MySQL FLOAT、DOUBLE、DECIMAL(小数类型)

浮点数类型的取值范围为 M(1~255)和 D(1~30,且不能大于 M-2),分别表示显示宽度和小数位数。最后再强调一下:在 MySQL 中,定点数以字符串形式存储,在对精度要求比较高的时候(如货币、科学数据),使用 DECIMAL 的类型比较好,另外两个浮点数进行减法和比较运算时也容易出问题,所以在使用浮点数时需要注意,并尽量避免做浮点数比较。FLOAT 和 DOUBLE 在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定),DECIMAL 如果不指定精度,默认为(10,0)。

m0_37449634的博客 1105

MySQL中Decimal类型和Float Double的区别 & BigDecimal与Double使用场景

MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型。 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的d...

weixin_30920091的博客 5254

谈谈MySQL如何选择float, double, decimal

谈谈MySQL如何选择float, double, decimal

这个人很懒,什么都没有留下。 2386

mysql float限定小数位_MySQL FLOAT、DOUBLE、DECIMAL(小数类型)

MySQL 中使用浮点数和定点数来表示小数。浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE);定点类型只有一种,就是DECIMAL。浮点类型和定点类型都可以用(M, D)来表示,其中M称为精度,表示总共的位数;D称为标度,表示小数的位数。浮点数类型的取值范围为 M(1~255)和 D(1~30,且不能大于 M-2),分别表示显示宽度和小数位数。M 和 D 在 FLO...

weixin_30224231的博客 4310

MYSQL中的FLOAT、DOUBLE和DECIMAL类型

MySQL支持的三个浮点类型是FLOAT、DOUBLE和DECIMAL类型。FLOAT数值类型用于表示单精度浮点数值,而DOUBLE数值类型用于表示双精度浮点数值。   与整数类型一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。例如,语句FLOAT (5,2)规定显示的值不会超过5位数字,小数点后面带有2位数字。看下面的示范举例: [sql] view

hmxiao_1983的专栏 1334

mysql:列类型之decimal、numeric

环境: window10 vs2022 .net core 3.1 mysql 8.0.25 DBeaver 参考: 《mysql:11.1.3 Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC》 1. decimal和numeric的定义 这两个是同一个意思,使用numeric定义的列会被转换成decimal。 使用的语法为: decimal[M[,D]] 如: decimal、decimal(5)以及decimal(5,2)都是可以的。 上面的

火焰 1万+
上一篇: mysql列类型一 —— 整型(Tinyint,Smallint,Mediumint,Int,Bigint)
下一篇: mysql列类型三——时间日期类型(Date,Time,Datetime,Timestamp,Year)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值