在我的数据库中,我有商品价格和商品的折扣百分比。
以下是数据库中的示例行
Name Price DiscountPercent
**** 1000.26 17.00
现在这一行我需要得到折扣价,但是逗号后面有两位数,即折扣价830.2158我想得到830.21
否则
Round((UnitPrice - (UnitPrice * DiscountPercent)/100),2)
我的选择查询中的将返回830.22,这不是我想要的。如果可以的话,我本可以达到预期的效果
Round(Floor((UnitPrice - (UnitPrice * DiscountPercent)/100) * 100)/100,2)
但遗憾的是,SQLite中没有Floor函数。
我也尝试转换为int然后除以100和Round,但似乎SQLite将整个结果转换为int,因为我得到830.0
我该怎么做?
提前致谢
答案 0 :(得分:0)
好的,这个很复杂,它基本上减去了小数点后三位。
round((UnitPrice - (UnitPrice * DiscountPercent)/100)-(((UnitPrice - (UnitPrice * DiscountPercent)/100)%1*100)%1/100),2)
更容易阅读并获得基本想法:
round(value -((value%1*100)%1/100),2)
答案 1 :(得分:0)
SELECT cast(cast((UnitPrice - UnitPrice * DiscountPercent / 100)* 100 as int)as real)/ 100 FROM Product