MSSQL 保留小數字數的方法

2021-10-07 19:58:35 字數 1924 閱讀 7345

round

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

那麼用到四捨五入並且保留小數點時我們肯定會首選round函式,  如果欄位的資料型別是decimal(18,10)時那麼四捨五入後還會有很多0出現。

引數說明:

numeric_expression

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

length

它是 numeric_expression 的捨入精度 。 length 必須是 tinyint、smallint 或 int 型別的表示式 。如果 length 為正數,則將 numeric_expression 捨入到 length 指定的小數字數 。 如果 length 為負數,則將 numeric_expression 小數點左邊部分捨入到 length 指定的長度 。

函式

要執行的操作的型別。 function 的資料型別必須是 tinyint、smallint 或 int 。如果 function 省略或其值為 0(預設值),則對 numeric_expression 進行捨入。 如果指定了 0 以外的值,則將截斷 numeric_expression 。

在微軟中查詢時注意一點:

round 始終返回乙個值。 如果 length 為負數,並且大於小數點前的數字個數,則 round 將返回 0 。

例 :

round(748.58, -4)

結果 :0

round(748.58, -2)

結果:700.00

示例結果

round(748.58, -1)

750.00

round(748.58, -2)

700.00

round(748.58, -3)

導致算術溢位,因為 748.58 預設為 decimal(5,2),它無法返回 1000.00。

在查詢 管理器中的反饋為:將 expression 轉換為資料型別 numeric 時出現算術溢位錯誤。

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

複製

select round(123.9994, 3), round(123.9995, 3);  

go

下面是結果集:

複製

----------- -----------  

123.9990 124.0000

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

複製

select round(123.4545, 2), round(123.45, -2);
下面是結果集:

複製

----------  ----------

123.4500 100.00

以下示例使用了兩個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)

numpy保留小數字數

import numpy as np n 2data numpy.around a,n 保留2位小數,n為3,則保留3位小數。預設保留整數,計算方法是四捨五入。這裡是一些例子 import numpy as np np.around 0.37,1.64 array 0.2.np.around 0.3...

C 保留小數字數的方法集錦

1.system.globalization.numberformatinfo provider new system.globalization.numberformatinfo provider.numberdecimaldigits intdeclength 要設定的小數字數 double s...

C 保留小數字數的方法集錦

c 保留小數字數的方法集錦 1.system.globalization.numberformatinfo provider new system.globalization.numberformatinfo provider.numberdecimaldigits intdeclength 要設定...