MySQL中Decimal类型和Float Double的区别(详解)
发布时间 - 2026-01-11 00:20:30 点击率:次MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型。

其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。
float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12。
幸好mysql提供了两个数据类型:decimal,这种数据类型可以轻松解决上面的问题:decimal类型被 MySQL 以同样的类型实现,这在 SQL92 标准中是允许的。他们用于保存对准确精度有重要要求的值,例如与金钱有关的数据。
数据定义
float(M,S) M为全长,S为小数点后长度。对于不精准的例子,网络上很多,Copy如下:
mysql> create table t1(c1 float(10,2), c3decimal(10,2));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t1 values(9876543.21, 9876543.12);
Query OK, 1 row affected (0.00 sec)
mysql> select * from t1;
+----------------+-----------------+
| c1 | c3 |
+----------------+-----------------+
| 9876543.00 | 9876543.12 |
+----------------+------------------+
2 rows in set (0.00 sec)
再举例: DECIMAL(5,2)
mysql> create table t1(id1 float(5,2) default null,id2 double(5,2) default null,
id3 decimal(5,2) default null );
mysql> insert into t1 values(1.2345,1.2345,1.2345);
Query OK, 1 row affected, 1 warning (0.04 sec)
mysql> show warnings;
+-------+------+------------------------------------------+
| Level | Code | Message |
+-------+------+------------------------------------------+
| Note | 1265 | Data truncated for column 'id3' at row 1 |
+-------+------+------------------------------------------+
1 row in set (0.00 sec)
1.2345 --- 小数点后最多2位,所以保存可以,自动四舍五入数据截断,但会报waning
12.34 --- OK
1234.5 --- 因为小数部分未满2位,要补0.所以保存应该1234.50。所以整个位数超出了5,保存报错。
1.2 --- 小数未满部分补0。按照1.20保存。
默认状态比较
浮点数如果不写经度和标度,会按照实际精度值保存,如果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错;定点数如果不写精度和标度,则按照默认值decimal(10,0) 来操作,如果数据超过了精度和标度值,系统会报错。
以上这篇MySQL中Decimal类型和Float Double的区别(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# mysql
# decimal
# float
# 浅谈MySQL中float、double、decimal三个浮点类型的区别与总结
# PHP格式化MYSQL返回float类型的方法
# mysql中sum float类型使用小数点的方法
# mysql下float类型使用一些误差详解
# MySQL FLOAT不准问题解析
# 报错
# 给大家
# 会报
# 未满
# 不写
# 的是
# 非标准
# 四舍五入
# 也有
# 浮点数
# 给你
# 有个
# 最多
# 当你
# 希望能
# 这篇
# 这在
# 就以
# 则会
# 则以
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
大连 网站制作,大连天途有线官网?
JavaScript数据类型有哪些_如何准确判断一个变量的类型
如何批量查询域名的建站时间记录?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
php485函数参数是什么意思_php485各参数详细说明【介绍】
如何获取PHP WAP自助建站系统源码?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
想要更高端的建设网站,这些原则一定要坚持!
如何用免费手机建站系统零基础打造专业网站?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
公司网站制作价格怎么算,公司办个官网需要多少钱?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
在线制作视频的网站有哪些,电脑如何制作视频短片?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何快速生成ASP一键建站模板并优化安全性?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
Android使用GridView实现日历的简单功能
Laravel模型事件有哪些_Laravel Model Event生命周期详解
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
魔方云NAT建站如何实现端口转发?
焦点电影公司作品,电影焦点结局是什么?
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
Python数据仓库与ETL构建实战_Airflow调度流程详解
WordPress 子目录安装中正确处理脚本路径的完整指南
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Laravel如何自定义分页视图?(Pagination示例)
Laravel怎么调用外部API_Laravel Http Client客户端使用
JavaScript Ajax实现异步通信
济南网站建设制作公司,室内设计网站一般都有哪些功能?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
如何在搬瓦工VPS快速搭建网站?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
如何在阿里云部署织梦网站?
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
利用vue写todolist单页应用
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
JavaScript中的标签模板是什么_它如何扩展字符串功能
简单实现Android验证码
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
创业网站制作流程,创业网站可靠吗?
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
微信公众帐号开发教程之图文消息全攻略
微信小程序制作网站有哪些,微信小程序需要做网站吗?

