mysql钱存的类型用的varchar类型,然后在更新钱的时候,在相加减某个值得时候会出现运算后结果的小数部分出现多个不精确的值。处理需要用case函数将varchar类型转成decimal然后进行操作,例如:
update t set prj_money_use = cast(prj_money_use as decimal(11,2)) + cast(#{returnMoney} as decimal(11,2)) where prj_id = #{prjId}
这样就可以了哦~结果就是保留两位小数了
本文介绍了一种在MySQL中处理金额字段的有效方法。当金额使用varchar类型存储时,直接进行数学运算可能导致精度丢失。通过使用cast函数将varchar转换为decimal类型,可以确保计算精度,并保留所需的位数。
1156

被折叠的 条评论
为什么被折叠?



