Sql 用5的倍数将浮点列四舍五入到下一个数字
目前我有一个定义为float的列(ex16.98),我需要能够获取该值并找到5的下一个最高倍数 例子Sql 用5的倍数将浮点列四舍五入到下一个数字,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,目前我有一个定义为float的列(ex16.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
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
请注意,如果是5的倍数,那么它应该返回自身。如果使用MySql,请尝试以下操作:
SELECT Format((ceiling(cast(unitprice*100 as int)/5.0)*5.0)/100.0, 'g18')
From table
SELECT (ceil(cast(val*100 as signed)/5.0)*5.0)/100.0 from tbl;
CAST
insideCEIL
非常有用-它消除了舍入误差
在SQL SERVER中:
SELECT (ceiling(cast(val*100 as int)/5.0)*5.0)/100.0 from tbl;
其中tbl
包含要转换的值。尝试以下操作:
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;
哪个数据库引擎?SQL SERVER 2012这不适用于我拥有的39.62的数字这返回了45.00我需要它返回39.65。更新了查询@Kd5490Nice and easy:D