关闭

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

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

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 个字节可用。

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

总结

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

参考资料

0
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

MySQL 中你应该使用什么数据类型表示时间?

当你需要保存日期时间数据时,一个问题来了:你应该使用 MySQL 中的什么类型?使用 MySQL 原生的 DATE 类型还是使用 INT 字段把日期和时间保存为一个纯数字呢? 在这篇文章中,我将...
  • zy_281870667
  • zy_281870667
  • 2016-09-12 10:03
  • 4067

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

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

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

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

mysql数据库处理金额问题

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

MySQL DECIMAL数据类型

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

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

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

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

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

MySQL 中的数据类型介绍

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

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

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

MySQL 中你应该使用什么数据类型表示时间?

当你需要保存日期时间数据时,一个问题来了:你应该使用 MySQL 中的什么类型?使用 MySQL 原生的 DATE 类型还是使用 INT 字段把日期和时间保存为一个纯数字呢? 在这篇文章中,我将...
  • zy_281870667
  • zy_281870667
  • 2016-09-12 10:03
  • 4067
    个人资料
    • 访问:596505次
    • 积分:8624
    • 等级:
    • 排名:第2647名
    • 原创:293篇
    • 转载:13篇
    • 译文:4篇
    • 评论:73条
    博客专栏
    微信订阅号
    欢迎加入QQ群
    玩家老黄历(微信小程序)
    谢谢支持~
    最新评论