如何在SQLite中使用自定义数字编号获取ceil值?

时间:2014-11-12 19:12:21

标签: sql sqlite

在我的数据库中,我有商品价格和商品的折扣百分比。

以下是数据库中的示例行

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

我该怎么做?

提前致谢

2 个答案:

答案 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