Round Up Float列到下一个数字,其倍数为5

时间:2018-04-03 13:09:55

标签: sql sql-server sql-server-2012

目前我有一个定义为float的列(ex 16.98)我需要能够获取该值并找到5的下一个最高倍数。

示例......

Value 16.98           Should Return 17.00  
Value 10.46           Should Return 10.50    
Value  9.11           Should Return  9.15  
Value  8.10           Should Return  8.10  
Value  18.65          Should Return 18.65  

请注意,如果is是5的倍数,那么它应该自行返回。

3 个答案:

答案 0 :(得分:1)

SELECT Format((ceiling(cast(unitprice*100 as int)/5.0)*5.0)/100.0, 'g18')
From table

答案 1 :(得分:1)

如果您使用的是MySql,请尝试以下操作:

SELECT (ceiling(cast(val*100 as int)/5.0)*5.0)/100.0 from tbl;
<{1}}内的{p> tbl非常有用 - 它可以消除舍入错误。

Here is Demo

在SQL SERVER中:

position: absolute

{{1}}包含要转换的值。

答案 2 :(得分:1)

试试这个:

SELECT
CEILING(16.98 * 20) / 20,
CEILING(10.46 * 20) / 20,
CEILING(9.11 * 20) / 20,
CEILING(8.10 * 20) / 20,
CEILING(18.65 * 20) / 20

所以查询看起来像:

SELECT CEILING(yourColumn * 20) / 20 AS Result FROM yourTable;