舍入到最小整数值

时间:2014-11-25 11:12:53

标签: sql sql-server-2008

我使用此查询来舍入数字,然后舍入下一个值。现在我需要舍入到前面的值意味着如果值是45.67那么值应该是45.我尝试了这两个查询,但仍然需要调整值。

方法一:

parsename('$' + convert(varchar,convert(money,round(sum(Column1 * Column2),0)),1),2)

方法2:

parsename('$' + convert(varchar,convert(money,floor(Column1 * Column2),0),1),2)

真的很感激任何建议。

2 个答案:

答案 0 :(得分:2)

CEILING函数返回大于或等于指定数值表达式的最小整数。 FLOOR函数返回小于或等于指定数值表达式的最大整数。例如,在考虑数字表达式12.9273时,CEILING返回13并且FLOOR返回12. FLOOR和CEILING的返回值与输入数值表达式具有相同的数据类型。

SELECT CEILING(12.9273);
Here is the result set.
13

SELECT FLOOR(12.9273);
Here is the result set.
12

http://technet.microsoft.com/en-us/library/ms190927%28v=sql.105%29.aspx

答案 1 :(得分:0)

要向下舍入,您可以使用FLOOR()

E.G。

DECLARE @number numeric(5,2)
SET @number = 45.67
SELECT FLOOR(@number)

您获得了结果45

举个例子,它看起来已经有效了吗?

declare @number1 numeric(5,2)
declare @number2 numeric(5,2)
set @number1 = 1.23
set @number2 = 21.69

select parsename('$' + convert(varchar,convert(money,floor(@number1 * @number2),0),1),2)
select @number1 * @number2

结果

$26
26.6787