表设计都是保留2位小数:


原来价格为9.9 * 1.05=10.395 mysql这里会 把小数点的第3位四舍五入,而java是直接去掉
UPDATE ewj_market.`market_wd_sku` SET `price`= price*1.05 WHERE `goods_id`=10180553
这里结果为10.4
java解决方案 保留2位
(double)(Math.ceil(price*100)/100) 分拆为如下:
1: 10.395*100=1039.5
2:Math.ceil(1039.5)=1040
3:(double)(1040/100)=10.4刚好 与mysql的方式一样

博客指出表设计保留2位小数时,MySQL会对小数点第3位四舍五入,而Java是直接去掉。以价格计算为例,给出了SQL更新语句。同时提供了Java解决方案,通过(double)(Math.ceil(price*100)/100)实现与MySQL相同的保留2位小数效果。
920

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



