程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> sqlserver四捨五入應用round函數及cast和convert函數

sqlserver四捨五入應用round函數及cast和convert函數

編輯:MSSQL

sqlserver四捨五入應用round函數及cast和convert函數。本站提示廣大學習愛好者:(sqlserver四捨五入應用round函數及cast和convert函數)文章只能為提供參考,不一定能成為您想要的結果。以下是sqlserver四捨五入應用round函數及cast和convert函數正文


引言

      明天和測試溝通一個百分比盤算方法時碰到一個成績, 我在存儲進程裡用到了強轉CAST(32.678 AS DECIMAL(5,1))  我以為該方法只會保存一名小數,我給測試的答復是我並沒有效到四捨五入函數,數據也沒有四捨五入,而測試說他們本身驗證後覺的數據是經由四捨五入了的。 想到這裡因而我再試了試存儲進程的每一個盤算點,才發明了這個成績。

ROUND

     那末用到四捨五入而且保存小數點時我們確定會首選ROUND函數,  假如字段的數據類型是decimal(18,10)時那末四捨五入後還會有許多0湧現。

CAST和CONVERT

    其實我應用強轉時並沒有盤算四捨五入成果,只是純真為了獲得相符我請求的數據,明天才發明這兩個強轉也會四捨五入成果,也就是說上面三個語句將會前往雷同的成果值

select ROUND(32.678,1)  --32.700
select CAST(32.678 as DECIMAL(5,1)) --32.7
select convert(NUMERIC(5,1),32.678) --32.7

上面抽個空給年夜家引見SQL的四捨五入ROUND函數

SQL四捨五入2007/11/01 16:35成績1:

SELECT CAST('123.456' as decimal) 

將會獲得 123(小數點前面的將會被省略失落)。

假如願望獲得小數點前面的兩位。

則須要把下面的改成

SELECT CAST('123.456' as decimal(38, 2)) ===>123.46

主動四捨五入了!

成績2:

SELECT ROUND(123.75633, 2, 1), ROUND(123.75633, 2)

下面的SQL獲得的2個值是紛歧樣的,前一個是:123.75000,後一個是:123.76000。

由於前者在停止四捨五入之前,小數點後曾經被截取,保存了2位。

爾後者則沒有被截取,四捨五入時天然就會獲得123.76000

ROUND

前往數字表達式並四捨五入為指定的長度或精度。

語法

ROUND ( numeric_e-xpression , length [ , function ] )

參數

numeric_e-xpression

准確數字或近似數字數據類型種別的表達式(bit 數據類型除外)。

length

是 numeric_e-xpression 將要四捨五入的精度。length 必需是 tinyint、smallint 或int。當 length 為負數時,numeric_e-xpression 四捨五入為 length 所指定的小數位數。當 length 為正數時,numeric_e-xpression 則按 length 所指定的在小數點的右邊四捨五入。

function

是要履行的操作類型。function 必需是 tinyint、smallint 或 int。假如省略 function 或 function 的值為 0(默許),numeric_e-xpression 將四捨五入。當指定 0 之外的值時,將截斷 numeric_e-xpression。

前往類型

前往與 numeric_e-xpression 雷同的類型。

正文

ROUND 一直前往一個值。假如 length 是正數且年夜於小數點前的數字個數,ROUND 將前往 0。

示例 成果

ROUND(748.58, -4) 0

當 length 是正數時,不管甚麼數據類型,ROUND 都將前往一個四捨五入的 numeric_e-xpression。

示例 成果

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)
123.4500
Select ROUND(123.45, -2)
100.00

C. 應用 ROUND 截斷

下例應用兩個 Select 語句解釋四捨五入和截斷之間的差別。第一個語句四捨五入成果。第二個語句截斷成果。

語句 成果

Select ROUND(150.75, 0)
151.00
Select ROUND(150.75, 0, 1)
150.00
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved