场景:单价的处理
如:单价需要精确到小数位7位,未来计算精确,mysql中定义的类型为decimal,
结果在界面回显的时候,输入的值:0.001 保存数据库中是0.0010000 希望结果为0.001 ,
如输入的值是:20.00 保存数据库中是20.0000000 希望回显结果是20.00
由于输入的值随机性强,特别是如果输入0, 回显时候变成oe-7 超级郁闷。。。
反思苦想,只能在mysql中处理,比较好!
解决方法:
1:先把数据转换成字符串:如:SELECT CONCAT(2,'');
其实在windows 中 此步骤可省略。
2:去除位数为0的字符
如:
select TRIM(TRAILING '0' FROM '20.00')
3: 由于输入20.00 在进行第2步的时候 变成了"20. " 必须加上00 得出结果20.00
如:
1、
select case when (select SUBSTRING_INDEX((select TRIM(TRAILING '0' FROM '20.00100')), '.', -1))=""
then (select CONCAT( (select TRIM(TRAILING '0' FROM '20.00100')),"00") )
else ( select TRI