共用方式為


ROUND (Transact-SQL)

傳回數值,捨入到指定的長度或有效位數。

主題連結圖示Transact-SQL 語法慣例

語法

ROUND ( numeric_expression , length [ ,function ] )

引數

  • numeric_expression
    這是精確數值或近似數值資料類型類別目錄的運算式,但 bit 資料類型除外。
  • length
    這是 numeric_expression 捨入的有效位數。length 必須是 tinyintsmallintint 類型的運算式。當 length 是正數時,numeric_expression 會捨入到 length 所指定的十進位數。當 length 是負數時,numeric_expression 會依照 length 所指定,在小數點左側捨入。
  • function
    這是要執行的作業類型。function 必須是 tinyintsmallintint。當省略 function,或其值為 0 (預設值) 時,會捨入 numeric_expression。當指定 0 以外的值時,會截斷 numeric_expression

傳回類型

傳回與 numeric_expression 相同的類型。

備註

ROUND 一律傳回值。如果 length 是負的,且大於小數點前面的位數,ROUND 會傳回 0。

範例 結果

ROUND(748.58, -4)

0

length 是負數時,不論資料類型為何,ROUND 都會傳回捨入的 numeric_expression

範例 結果

ROUND(748.58, -1)

750.00

ROUND(748.58, -2)

700.00

ROUND(748.58, -3)

1000.00

範例

A. 使用 ROUND 和估計

下列範例顯示利用 ROUND 來示範的兩個運算式,最後一位數永遠是一項估計。

SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)
GO

以下為結果集:

----------- -----------
123.9990    124.0000    

B. 使用 ROUND 和捨入近似值

下列範例顯示捨入和近似值。

SELECT ROUND(123.4545, 2);
GO
SELECT ROUND(123.45, -2);GO

以下為結果集:

----------

123.4500

(1 row(s) affected)

--------

100.00

(1 row(s) affected)

C. 利用 ROUND 來截斷

下列範例利用兩個 SELECT 陳述式,來示範捨入和截斷之間的差異。第一個陳述式會捨入結果。第二個陳述式會截斷結果。

SELECT ROUND(150.75, 0);
GO
SELECT ROUND(150.75, 0, 1);
GO

以下為結果集:

--------
151.00

(1 row(s) affected)

--------
150.00

(1 row(s) affected)

請參閱

參考

CEILING (Transact-SQL)
資料類型 (Transact-SQL)
運算式 (Transact-SQL)
FLOOR (Transact-SQL)
數學函數 (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助