0

我有一个计算商品折扣的 sql 脚本,现在虽然我可以很好地进行计算,但我遇到了价格中美分的问题

我有一件 9.95 美元的商品,它的折扣是 50%,所以它的新价格是 4.975 美元,因为商店中的价格应该具有 2 的精度,所以价值是 4.97 美元(根据政策,折扣价格必须是最低价值)

问题是价值是错误的,因为网站上的价格必须与商店中的价格相匹配,而且在澳大利亚,最小的变化是 5 美分,价格必须是该值的倍数,因为收银员不能给顾客 1 - 4 美分零钱,如果他们在网上购买打折到 4.97 美元的商品,而在商店里购买的商品是 4.95 美元,他们会抱怨(是的,人们就是那么挑剔)

有没有办法四舍五入到最接近的 5 或 0

4

2 回答 2

2

这对你有用吗?

SELECT floor(price_after_discount * 20) / 20 AS price FROM table
于 2013-05-29T04:51:56.910 回答
1

在 SQL Server 中,我可以这样做:

select 
    Val, 
    FLOOR(val) + 
        CASE 
            WHEN (val * 100)%100 >= 50 THEN 0.05 
            ELSE 0 
        END Rounded_Val
from #Test

在此处输入图像描述

于 2013-05-29T05:04:36.977 回答