【发布时间】:2018-03-09 10:52:43
【问题描述】:
我想纠正 SQL 查询以四舍五入到最接近的 .49 或 .99
我目前使用 FLOOR 或 TRUNCATE 函数将其写入到 0.99 没有问题
UPDATE wp_postmeta
SET meta_value=meta_value*1.39
WHERE meta_key='_saleprice' OR meta_key='_price';
UPDATE wp_postmeta
SET meta_value = FLOOR(meta_value) + 0.99
WHERE meta_key='_price' OR meta_key='_saleprice’;
首先将价格乘以 1.39 然后 FLOORS 这个(在小数点四舍五入到最接近的整数后删除)然后将 0.99 添加到末尾......总共有效地四舍五入到最接近的 0.99
PRICE AFTER *1.39 PRICE AFTER ROUNDING
10.00 10.99
10.49 10.99
10.50 10.99
10.99 10.99
11.00 11.99
11.49 11.99
11.50 11.99
11.99 11.99
我想要达到的是
PRICE AFTER *1.39 PRICE AFTER ROUNDING
10.00 10.49
10.49 10.49
10.50 10.99
10.99 10.99
11.00 11.49
11.49 11.49
11.50 11.99
11.99 11.99
我如何才能最好地实现这一目标?期待一些建议
谢谢
亨利
【问题讨论】:
-
* 2.0,向上取整,除以 2,减去 0.01
-
@jarlh close,非常简单的数学解决方案。这适用于除 0.00 值之外的所有值,该值最终低于原始值 0.99。例如,10.00 变为 9.99。
-
我好尴尬……
-
*2呢,加1,向下取整,除以2,减去0.01
-
* 2.0,截断,除以 2,加 0.49?