重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
对于游戏币等代币,一般存储为int类型是可行的。问题在于越界,int类型长度为11位。
为双滦等地区用户提供了全套网页设计制作服务,及双滦网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、双滦网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
在存储人民币相关的金额的时候,则只能存储到9长度的人民币,也就是说,最大只能存储999999999,不到10亿的数值,如果业务增长很快的话,就会给自己留下隐患。
Decimal:Decimal为专门为财务相关问题设计的数据类型。
DECIMAL从MySQL5.1引入,列的声明语法是DECIMAL(M,D)。在MySQL5.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)的最大值为9999.99,因为有7个字节可用。能够解决数据的范围和精度的问题。
扩展资料
MySQL数据类型DECIMAL用法:
MySQL DECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。
要定义数据类型为DECIMAL的列,请使用以下语法:column_name DECIMAL(P,D);
在上面的语法中:
P是表示有效数字数的精度。 P范围为1〜65。
D是表示小数点后的位数。 D的范围是0~30。MySQL要求D小于或等于(=)P。
DECIMAL(P,D)表示列可以存储D位小数的P位数。十进制列的实际范围取决于精度和刻度。
与INT数据类型一样,DECIMAL类型也具有UNSIGNED和ZEROFILL属性。如果使用UNSIGNED属性,则DECIMALUNSIGNED的列将不接受负值。
如果使用ZEROFILL,MySQL将把显示值填充到0以显示由列定义指定的宽度。另外,如果我们对DECIMAL列使用ZEROFILL,MySQL将自动将UNSIGNED属性添加到列。
double(m, d)
8字节,双精度浮点型,m总个数,d小数位
使用double字段类型来定义,可以设置保留小数点位数,一般定义为2(保留两位小数点)
金钱类型,对于mysql,就是带小数的数字型decimal,你的界面上显示的时候,是否要标记逗号等方式,是前台展示格式化的问题,和mysql没有关系。
存储人民币金额应该使用DECIMAL类型,保证存储和计算的精确性。如果确保金额不会包含小数部分,可以使用INT类型。绝对不可以使用浮点类型。