选择Round((10 * 100)/ 115,0)
结果:8
但结果:8.69
但我想显示9
我也试过下面的查询,但结果是一样的..
选择Round((10 * 100)/ 115,0)
请解决我的问题....
由于
答案 0 :(得分:1)
尝试以下
declare @n decimal(4,1)
select @n = 8.69
select case when PARSENAME(@n,1)>=5 then ceiling(@n) else floor(@n) end
的想法是,如果点后的数字大于5则转到上限值,否则转到下限
答案 1 :(得分:0)
如果您的数据库是oracle,那么您可以使用以下功能..
对于结果9,使用ceil函数,对于结果8,使用floor函数
select ceil(8.69) val from dual;
select floor(8.69) val from dual;
答案 2 :(得分:0)
对于较高的值,您可以使用Ceil函数,对于较低的值,您可以在oracle中使用floor函数,如下所示
select ceil(8.69) Upper_val,floor(8.69) Lower_val from dual;
答案 3 :(得分:0)
返回一个整数。尝试在计算前将其转换为小数
例如
select Round((10*100)/115,0)
更改为
select Round((10.0*100)/115,0)
希望这会有所帮助
答案 4 :(得分:0)
如果它的SQL Server请尝试这个:
SELECT CEILING(10.1) AS UpperValue, FLOOR(10.6) AS LowerValue,
Round(CAST((CAST(10 AS float) * CAST(100 AS float)) / CAST(115 AS float) AS float), 0)
AS YourValue, Round((10*100)/115,0) AS YourOldValue;
答案 5 :(得分:0)
以下是发生的事情:
甚至在使用ROUND功能之前
SELECT 1000/115 /* the result is 8 */
并试试这个
SELECT ROUND(1000.0/15, 0) /* the result is 9.000000 */
如果使用此
SELECT CEILING(1000.0/115) /* the result is 9 */
所以基本上在调用任何函数之前,结果是8。
你可以用这个:
SELECT ROUND(CONVERT(decimal, 1000) / 115, 0)
或者只是这个:
SELECT ROUND(1000.0/15, 0)