MS SQL的ROUND函式用來數值的四捨五入

2022-09-07 21:00:23 字數 2582 閱讀 3354

ms sql的round函式用來數值的四捨五入

ms sql要進行數值的四捨五入,有一好用的函式round。

語法 round ( numeric_expression , length [ ,function ] )

引數numeric_expression 精確數值或近似數值資料類別(bit 資料型別除外)的表示式。

length           numeric_expression 的捨入精度。

length 必須是 tinyint、smallint 或 int 型別的表示式。

如果 length 為正數,則將 numeric_expression 捨入到 length 指定的小數字數。

如果 length 為負數,則將 numeric_expression 小數點左邊部分捨入到 length 指定的長度。

function        要執行的操作的型別。function 必須為 tinyint、smallint 或 int。

如果省略 function 或其值為 0(預設值),則將捨入 numeric_expression。

如果指定了 0 以外的值,則將截斷 numeric_expression。

返回型別

返回與 numeric_expression 相同的型別。

備註始終返回乙個值。

如果 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

以下示例顯示了兩個表示式,闡釋使用了 round 後,最後一位數將始終為估計值

round(123.9994, 3)    123.9990

round(123.9995, 3)    124.0000

以下示例顯示捨入和近似值

round(123.4545, 2) 123.4500

round(123.45, -2)    100.00

以下示例使用了兩個 select 語句,用於闡釋捨入和截斷之間的區別。第乙個語句捨入結果。第二個語句截斷結果。

round(150.75, 0)     151.00

round(150.75, 0, 1) 150.00

以下題為有一station表,求lat_n和long_w的總和,結果精確到二位小數點。

query the following two values from the station table:

the sum of all values in lat_n rounded to a scale of decimal places.

the sum of all values in long_w rounded to a scale of decimal places.

input format

the station table is described as follows:

field type

id number

city varchar2(32)

state varchar2(2)

lat_n number

long_w number

where lat_n is the northern latitude and long_w is the western longitude.

output format

your results must be in the form:

lat lon

where is the sum of all values in lat_n and is the sum of all values in long_w.

both results must be rounded to a scale of decimal places.

此題還需要decimal/numeric資料型別,以及convert/cast轉換函式的知識

decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )]

固定精度和小數字數。使用最大精度時,有效值從 - 10^38 +1 到 10^38 - 1。decimal 的 iso 同義詞為 dec 和 dec(p, s)。numeric 在功能上等價於 decimal。

p(精度,precision)

最多可以儲存的十進位制數字的總位數,包括小數點左邊和右邊的位數。該精度必須是從 1 到最大精度 38 之間的值。預設精度為 18。

s (小數字數,scale)

小數點右邊可以儲存的十進位制數字的最大位數。小數字數必須是從 0 到 p 之間的值。僅在指定精度後才可以指定小數字數。預設的小數字數為 0;因此,0 <= s <= p。最大儲存大小基於精度而變化。

Oracle中的Round函式

round函式用法 擷取數字 格式如下 round number decimals 其中 number 待做擷取處理的數值 decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分,並四捨五入。如果為負數則表示從小數點開始左邊的位數,相應整數數字用0填充,小數被去掉。需要注意...

Oracle 的 Round函式詳解

原文 round函式用法 擷取數字 格式如下 round number decimals 其中 number 待做擷取處理的數值 decimals 指明需保留小數點後面的位數。可選項,忽略它則截去所有的小數部分,並四捨五入。如果為負數則表示從小數點開始左邊的位數,相應整數數字用0填充,小數被去掉。需...

mysql中的round函式

在mysql中,round函式用於資料的四捨五入,它有兩種形式 1 round x,d x指要處理的數,d是指保留幾位小數 這裡有個值得注意的地方是,d可以是負數,這時是指定小數點左邊的d位整數字為0,同時小數字均為0 2 round x 其實就是round x,0 也就是預設d為0 下面是幾個例項...