xiuno的金额字段可以改成decimal(9,2)类型【非必须】 3P
CF
管理员组 管理员组
2021-11-08 17:50
楼主

最近在开发VIP功能(没有用于本站),发现xiuno4.0.4的user表rmbs字段默认是 int(11)

人民币字段如果使用整数型字段的话,那么是不能存储小数的,如果用户付款0.01元人民币,则无法对这个数值进行存储,存储的值还是0,所以有必要对这个字段进行转换。

这里推荐修改为 decimal(9,2) 类型,decimal(9,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数,而左边指定了最大精度是9,作为货币字段完全满足现实需求。

在mysql中,可以使用“ALTER TABLE”语句配合“MODIFY”关键字来更改表中某字段的数据类型;语法格式“ALTER TABLE <表名> MODIFY <字段名> <新数据类型>”。

alter table bbs_user modify rmbs decimal(9,2) default 0.00;

修改后的效果:

修改后的rmbs字段内容会增加两位小数,实测也可以存储0.01这样的数值了:

 

以上方法只针对你使用的涉及人民币字段的插件,如果你的插件是以 分 为单位,则无需修改,如果是像我这样以 元 为单位,则需要修改。

最后于 2023-05-17 11:08 被CF编辑 ,原因:
找不到工作/(ㄒoㄒ)/~~

 收藏 分享
最新回复 (2)
  • howareyou
    一级用户组
    2022-03-15 10:32
    沙发

    用的xiuno4.0.4,个人资料那里RMB单位是分,所以int类型没问题吧

    一只很白很白的小白......
  • CF
    管理员组
    2022-03-15 12:18
    板凳
    howareyou 用的xiuno4.0.4,个人资料那里RMB单位是分,所以int类型没问题吧

    是没问题,我只是不习惯用分做单位罢了

    找不到工作/(ㄒoㄒ)/~~
  • 游客
    地板
    登录 后参与评论
返回
CF
管理员组
主题数
帖子数
精华数