MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型。

其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。

对于精度比较高的东西,比如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。

举例:DECIMAL(5,3)

1.2345 — 小数点后最多3位,所以保存可以,自动四舍五入数据截断。

12.345 — OK

123.45 — 因为小数部分未满3位,要补0.所以保存应该123.450。所以整个位数超出了5,保存不可。

1.2 — 小数未满部分补0。按照1.200保存。

-> num DECIMAL(5,3)

-> );

Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO `decimal_test`(num) VALUES(1.2345);

Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> INSERT INTO `decimal_test`(num) VALUES(12.345);

Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO `decimal_test`(num) VALUES(123.45);

Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> INSERT INTO `decimal_test`(num) VALUES(1.2);

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM `decimal_test`;

+——–+

| num |

+——–+

| 1.235 |

| 12.345 |

| 99.999 | 没有正常保存

| 1.200 | 末尾未满补0

+——–+

4 rows in set (0.00 sec)

mysql 金额_Mysql中金额使用DECIMAL类型相关推荐

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

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

  2. mysql float 怎么设置长度_MySQL中float double decimal区别总结

    作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! 下表中规划了每个浮点类型的存储大小和范围: 类型大小范围(有符号)范围(无符号)用途fl ...

  3. mysql数字_MySQL 中的数字类型

    MySQL 中数据类型常用的就三大类: 数字类型/numeric types 日期和时间/date and time types 字符类型/string (character and byte) ty ...

  4. mysql中所有时间类型_MySQL 中的日期时间类型

    INSERT INTO todo (title,created_on) VALUES ('blah','2019-09-31'); ERROR 1292 (22007): Incorrect date ...

  5. mysql根据时间回退_MySQL 中的日期时间类型

    日期时间类型中包含以下几种数据类型: 各类型都有具体的取值范围,超出或非法的其他值时,MySQL 会回退到 0.TIMESTAMP 类型是个例外,给它设置一个超出范围的值时,将保存上该类型允许的最大值 ...

  6. mysql 5.7日志的种类_MySQL中的六种日志类型的介绍

    MySQL主要有以下几种日志类型: 错误日志――MySQL服务启动和关闭过程中的信息以及其它错误和警告信息.默认在数据目录下. 一般查询日志――用于记录select查询语句的日志.general_lo ...

  7. mysql timestamp json_mysql中timestamp,datetime,int类型的区别与优劣

    mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mys ...

  8. mysql 互斥_MySql中互斥量mutex的实现

    数据库中的Mutex量指的是一种用于保护一些临界资源的使用的信号量.当有线程需要使用这些临界资源时,会请求获得mutex量,请求成功的线程进入临界区,而请求失败的线程只能等待它释放这个mutex.互斥 ...

  9. mysql 互斥_Mysql 中互斥锁的使用

    本文介绍如在在多线程mysql代码开发中使用互斥锁. mysql自己对c++的mutex又进行了一次封装,封装的代码可以在include/mysql/psi/mysql_thread.h  中找到. ...

最新文章

  1. shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决
  2. python3最新稳定版本-python稳定版本
  3. WKWebview 的使用及坑
  4. 致远协同软件手机版让移动办公不再是梦想
  5. 软件工厂是否真的可能存在?
  6. 不会Git怎么当程序员?十分钟包你会
  7. (12)Node.js核心模块fs—实现文件复制和压缩
  8. Java并发编程实践笔记(一)
  9. MFC中将view内容保存为bmp
  10. imooc数据结构探险-栈篇 栈应用括号匹配二 由群友启发改良james_yuan老师算法
  11. 通信系统中各网络设备时间同步要求
  12. python大作业 课设
  13. 《C++ primer 》 猎豹网校 函数模板 2018/10/9
  14. 八人抢答器讲解_八人抢答器PLC控制系统设计(最终版)最新版
  15. worder字体网页字体对照表
  16. 尝试 Nitrux 系统的六大理由
  17. (转)s3c6410 开发板Linux系统支持 K9GAG08U0E的方法
  18. 凸优化理论基础3——凸集和凸锥重要例子
  19. mysql读取股票数据_读取股票数据存储到本地MySQL数据库(一)
  20. 百度网盘网页端设置倍速播放

热门文章

  1. 人民币为什么会贬值?
  2. 这些年过上幸福生活的程序员(中篇)
  3. 电脑CPU使用率过高怎么办
  4. 今天goCom财政赤字了
  5. NSIS制作Qt自定义界面安装包(三):禁默安装运行软件所需的运行环境(Vc_redist, bonjoursdk)
  6. 深夜复习strcpy函数原型-----竟然暗藏着这么多玄机
  7. ata职业技能评价证书考出来有啥用?
  8. android 汉字笔画拆写,基于形状分割的手写汉字笔划提取方法
  9. Git - 团队合作利器 Branch 与 Git Flow
  10. 让人头疼的哈夫曼树与编码