MySQL除法运算默认保留4位小数,比如
select 1/3.0;
结果是 0.333
再比如
select 12499/100000.0
结果是0.1250
如果在此基础上再加工保留两位小数并四舍五入就会变成0.13
,而如果直接保留两位小数应该是0.12
要解决这个问题可以在被除数上加上一个很小的数字,比如1e-35,
select 1/(3.0 + 1e-35);
值会是0.3333333333333333
一个很长的精度。这种方案还可以解决被除数是0的问题,不会报除零异常。
网友评论