好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > sqlserver四舍五入使用round函數(shù)及cast和convert函數(shù)

sqlserver四舍五入使用round函數(shù)及cast和convert函數(shù)

熱門標(biāo)簽:疫情時(shí)期電話機(jī)器人 濮陽(yáng)清豐400開頭的電話申請(qǐng) 真3地圖標(biāo)注 臺(tái)灣外呼系統(tǒng)軟件 樂昌電話機(jī)器人 南通智能外呼系統(tǒng)怎么樣 地圖標(biāo)注跑線下市場(chǎng) 南京怎么申請(qǐng)400這種電話 地圖標(biāo)注可以編輯地名嗎

引言

      今天和測(cè)試溝通一個(gè)百分比計(jì)算方式時(shí)遇到一個(gè)問(wèn)題, 我在存儲(chǔ)過(guò)程里用到了強(qiáng)轉(zhuǎn)CAST(32.678 AS DECIMAL(5,1))  我認(rèn)為該方式只會(huì)保留一位小數(shù),我給測(cè)試的回復(fù)是我并沒有用到四舍五入函數(shù),數(shù)據(jù)也沒有四舍五入,而測(cè)試說(shuō)他們自己驗(yàn)證后覺的數(shù)據(jù)是經(jīng)過(guò)四舍五入了的。 想到這里于是我再試了試存儲(chǔ)過(guò)程的每個(gè)計(jì)算點(diǎn),才發(fā)現(xiàn)了這個(gè)問(wèn)題。

ROUND

     那么用到四舍五入并且保留小數(shù)點(diǎn)時(shí)我們肯定會(huì)首選ROUND函數(shù),  如果字段的數(shù)據(jù)類型是decimal(18,10)時(shí)那么四舍五入后還會(huì)有很多0出現(xiàn)。

CAST和CONVERT

    其實(shí)我使用強(qiáng)轉(zhuǎn)時(shí)并沒有打算四舍五入結(jié)果,只是單純?yōu)榱说玫椒衔乙蟮臄?shù)據(jù),今天才發(fā)現(xiàn)這兩個(gè)強(qiáng)轉(zhuǎn)也會(huì)四舍五入結(jié)果,也就是說(shuō)下面三個(gè)語(yǔ)句將會(huì)返回相同的結(jié)果值

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

下面抽個(gè)空給大家介紹SQL的四舍五入ROUND函數(shù)

SQL四舍五入2007/11/01 16:35問(wèn)題1:

SELECT CAST('123.456' as decimal) 

將會(huì)得到 123(小數(shù)點(diǎn)后面的將會(huì)被省略掉)。

如果希望得到小數(shù)點(diǎn)后面的兩位。

則需要把上面的改為

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

自動(dòng)四舍五入了!

問(wèn)題2:

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

上面的SQL得到的2個(gè)值是不一樣的,前一個(gè)是:123.75000,后一個(gè)是:123.76000。

因?yàn)榍罢咴谶M(jìn)行四舍五入之前,小數(shù)點(diǎn)后已經(jīng)被截取,保留了2位。

而后者則沒有被截取,四舍五入時(shí)自然就會(huì)得到123.76000

ROUND

返回?cái)?shù)字表達(dá)式并四舍五入為指定的長(zhǎng)度或精度。

語(yǔ)法

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

參數(shù)

numeric_e-xpression

精確數(shù)字或近似數(shù)字?jǐn)?shù)據(jù)類型類別的表達(dá)式(bit 數(shù)據(jù)類型除外)。

length

是 numeric_e-xpression 將要四舍五入的精度。length 必須是 tinyint、smallint 或int。當(dāng) length 為正數(shù)時(shí),numeric_e-xpression 四舍五入為 length 所指定的小數(shù)位數(shù)。當(dāng) length 為負(fù)數(shù)時(shí),numeric_e-xpression 則按 length 所指定的在小數(shù)點(diǎn)的左邊四舍五入。

function

是要執(zhí)行的操作類型。function 必須是 tinyint、smallint 或 int。如果省略 function 或 function 的值為 0(默認(rèn)),numeric_e-xpression 將四舍五入。當(dāng)指定 0 以外的值時(shí),將截?cái)?numeric_e-xpression。

返回類型

返回與 numeric_e-xpression 相同的類型。

注釋

ROUND 始終返回一個(gè)值。如果 length 是負(fù)數(shù)且大于小數(shù)點(diǎn)前的數(shù)字個(gè)數(shù),ROUND 將返回 0。

示例 結(jié)果

ROUND(748.58, -4) 0

當(dāng) length 是負(fù)數(shù)時(shí),無(wú)論什么數(shù)據(jù)類型,ROUND 都將返回一個(gè)四舍五入的 numeric_e-xpression。

示例 結(jié)果

ROUND(748.58, -1) 750.00
ROUND(748.58, -2) 700.00
ROUND(748.58, -3) 1000.00

示例

A. 使用 ROUND 和估計(jì)值

下例顯示兩個(gè)表達(dá)式,說(shuō)明使用 ROUND 函數(shù)且最后一個(gè)數(shù)字始終是估計(jì)值。

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

下面是結(jié)果集:

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

B. 使用 ROUND 和四舍五入的近似值

下例顯示四舍五入和近似值。

語(yǔ)句 結(jié)果

Select ROUND(123.4545, 2)
123.4500
Select ROUND(123.45, -2)
100.00

C. 使用 ROUND 截?cái)?/strong>

下例使用兩個(gè) Select 語(yǔ)句說(shuō)明四舍五入和截?cái)嘀g的區(qū)別。第一個(gè)語(yǔ)句四舍五入結(jié)果。第二個(gè)語(yǔ)句截?cái)嘟Y(jié)果。

語(yǔ)句 結(jié)果

Select ROUND(150.75, 0)
151.00
Select ROUND(150.75, 0, 1)
150.00
您可能感興趣的文章:
  • SqlServer2000+ 身份證合法校驗(yàn)函數(shù)的示例代碼
  • Sqlserver 自定義函數(shù) Function使用介紹
  • SQLServer行列互轉(zhuǎn)實(shí)現(xiàn)思路(聚合函數(shù))
  • SQLSERVER分頁(yè)查詢關(guān)于使用Top方式和row_number()解析函數(shù)的不同
  • SQLServer中Partition By及row_number 函數(shù)使用詳解
  • SQLServer中merge函數(shù)用法詳解
  • 談?wù)剆qlserver自定義函數(shù)與存儲(chǔ)過(guò)程的區(qū)別
  • SQLServer之常用函數(shù)總結(jié)詳解

標(biāo)簽:阿里 南京 廣安 福建 河北 陜西 通遼 馬鞍山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sqlserver四舍五入使用round函數(shù)及cast和convert函數(shù)》,本文關(guān)鍵詞  sqlserver,四舍五入,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《sqlserver四舍五入使用round函數(shù)及cast和convert函數(shù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于sqlserver四舍五入使用round函數(shù)及cast和convert函數(shù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章