随着英国增值税税率在新的一年中的变化,几个客户将需要更新他们的网站,以新的增值税税率。由于价格都存储在MySQL表(不包括增值税)中,在大多数网站的后端更改实际增值税税率是一个简单的标志,但这会留下“丑陋”的价格GB10.87,而不是GB10.99。
我想对价格运行一个查询来改变价格,这样所有新的价格(当增加新的增值税税率时)都是“好”的价格,而不是丑陋的价格。
例如:
现价(不含增值税):£8.50
现价(增值税17.5%):£9.99
新价格(增值税@ 20%):£10.20
期望价格(增值税@ 20%):£10.99
发布于 2010-11-30 20:52:00
如果你总是喜欢.99的价格,这应该很容易做到:
update articles set price = round((ceil(8.50 * 1.2) - 0.01) / 1.2, 2);证明:
mysql> select round((ceil(8.50 * 1.2) - 0.01) / 1.2, 2) as price;
+-------+
| price |
+-------+
| 9.16 |
+-------+
1 row in set (0.00 sec)为了获得有竞争力的价格,你也可以考虑使用floor(x)而不是ceil(x) ;)
发布于 2010-11-30 20:52:44
UPDATE products SET price = (CEIL(price*1.20)-0.01)/1.20 WHERE product_id = 123发布于 2010-11-30 20:52:36
尽管试图将价格上涨伪装成增值税上涨对客户来说是不诚实的,但您可以使用CEIL (将小数向上舍入到最接近的整数),然后是- 0.01。
https://stackoverflow.com/questions/4313908
复制相似问题