【MYSQL】金额(金钱)相关的数据存储类型

标签: mysql 数据存储 游戏 金钱
13184人阅读 评论(1) 收藏 举报
分类:

int

对于游戏币等代币,一般存储为int类型是可行的。

问题在于越界,int类型长度为11位。

在存储人民币相关的金额的时候,则只能存储到9长度的人民币,也就是说,最大只能存储999999999,不到10亿的数值,如果业务增长很快的话,就会给自己留下隐患。

Decimal

Decimal为专门为财务相关问题设计的数据类型。

DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下:

·M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M 的默认 值是10。

·D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。

说明:float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。

如DECIMAL(5,2) 的最大值为9 9 9 9 . 9 9,因为有7 个字节可用。

能够解决数据的范围和精度的问题。

总结

这两种方式都是可行的解决方案,我们可以根据具体情况使用合适的方案。

参考资料

查看评论

MySQL数据库存储价格金额使用的数据类型

使用decimal(m,n)这个数据类型来精确表达价格。 注意:不要使用float、double等浮点数据类型,因为它们是不精确的,特别是在计算的时候。 decimal使用方法:salary DEC...
  • t1anyuan
  • t1anyuan
  • 2017-04-14 10:16:03
  • 6183

mysql里记录货币用什么字段类型好?

在java的开发中,货币在数据库中MySQL常用Decimal和Numric类型表示,这两种类型被MySQL实现为同样的类型。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声...
  • xzp_12345
  • xzp_12345
  • 2018-03-06 16:42:45
  • 330

Java中存储金额用什么数据类型?

京京肚肚撸代码 2017-04-11 00:21 很早之前, 记得一次面试, 面试官问存储金钱用什么数据类型? 当时只知道8种数据类型(boolean, byte, short, int, long,...
  • u011277123
  • u011277123
  • 2017-04-17 18:36:18
  • 12308

mysql数据库处理金额问题

在开发的时候,处理金钱是在所难免的,如果存放金钱的类型使用decimal来处理,估计没有太 大的问题,但是如果使用varchar或char来存储了金钱,那么在做统计计算就会出现精度损失的 问题。 ...
  • u011186019
  • u011186019
  • 2016-09-02 19:13:27
  • 2296

MySQL DECIMAL数据类型

同事问MySQL数据类型DECIMAL(N,M)中N和M分别表示什么含义,M不用说,显然是小数点后的小数位数,但这个N究竟是小数点之前的最大位数,还是加上小数部分后的最大位数?这个还真记不清了。于是乎...
  • zyz511919766
  • zyz511919766
  • 2015-10-22 16:43:57
  • 37452

金额在数据库中的存储方法

1、decimal,以元为单位,精确到两位小数; 2、
  • caomiao2006
  • caomiao2006
  • 2014-04-15 09:25:29
  • 2760

mysql decimal类型与decimal长度用法详解

三者的区别介绍   float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1...
  • zhanghao143lina
  • zhanghao143lina
  • 2016-12-22 16:50:08
  • 25584

金额如果存在数据库中应该使用何种类型?

一般用money或decimal或numeric,而不用float或double,因为容易出现”失真”. money货币数据存储的精确度为四位小数。可以存储在 money 数据类型中的值的范围是 -...
  • gengfu_php
  • gengfu_php
  • 2017-09-02 21:44:41
  • 660

MySQL 中的数据类型介绍

要了解一个数据库,我们也必须了解其支持的数据类型。 MySQL支持所有标准的SQL数据类型,主要分3类: ·数值类型 ·字符串类型 ·时间日期类型 另一类是几何...
  • anxpp
  • anxpp
  • 2016-04-29 20:24:03
  • 103631

【MYSQL】金额(金钱)相关的数据存储类型

int对于游戏币等代币,一般存储为int类型是可行的。问题在于越界,int类型长度为11位。在存储人民币相关的金额的时候,则只能存储到9长度的人民币,也就是说,最大只能存储999999999,不到10...
  • diandianxiyu
  • diandianxiyu
  • 2017-03-01 17:28:15
  • 13184
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 73万+
    积分: 9778
    排名: 2260
    博客专栏
    谢谢支持~
    最新评论