日韩小视频-日韩久久一区二区三区-日韩久久一级毛片-日韩久久久精品中文字幕-国产精品亚洲精品影院-国产精品亚洲欧美云霸高清

下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 數(shù)據(jù)庫(kù) > MS_SQL > SQL開發(fā)知識(shí):詳細(xì)分析sqlserver中的小數(shù)類型(float和decimal)

SQL開發(fā)知識(shí):詳細(xì)分析sqlserver中的小數(shù)類型(float和decimal)

時(shí)間:2024-02-05 12:47作者:下載吧人氣:20

在SQL Server中實(shí)際上只有兩種小數(shù)數(shù)值類型,分別是float(近似數(shù)值)和decimal(精確數(shù)值),這兩種類型能表示所有的小數(shù)數(shù)值類型。

float(近似數(shù)值類型)

float表示的是近似數(shù)值,存在一定的精度缺失。

float(n)

這里的n是以科學(xué)計(jì)數(shù)法存儲(chǔ)浮點(diǎn)數(shù)尾數(shù)的位數(shù),因此此參數(shù)決定了精度和存儲(chǔ)的大小。其是可選的,默認(rèn)值是53,即float等價(jià)于float(53),占用8bytes。如果指定了n,則它必須是介于1至53之間的值。實(shí)際上,雖然n的取值范圍定義是1至53,但實(shí)際上float只能表示float(53)和float(24)兩種類型,分別占用8bytes和4bytes。

n的范圍 精度 存儲(chǔ)大小
1-24(都視為24) 7位小數(shù) 4bytes
25-53(都視為53) 15位小數(shù) 8bytes 

使用近似數(shù)值要格外注意盡量避免相等比較,因?yàn)楸热?可以被存儲(chǔ)為1.000000056,也可以被存儲(chǔ)為1.00000000672,進(jìn)行相等比較會(huì)得到意料之外的結(jié)果。

decimal(精確數(shù)值類型)

decimal表示的是精確數(shù)值類型。不存在精度損失,別名是numeric。

decimal(p, s)
— 等價(jià)于
numeric(p, s)

精確數(shù)值類型需要分別指定小數(shù)的最大位數(shù)(p)和小數(shù)位的數(shù)量(s):

  • p(precision):指定小數(shù)的最大位數(shù),小數(shù)點(diǎn)的左側(cè)和右側(cè)的數(shù)字的總數(shù)量不能超過p,p的取值范圍是從1到38,默認(rèn)值為18。
  • s(scale):指定在小數(shù)點(diǎn)右側(cè)的小數(shù)位數(shù),p-s是小數(shù)點(diǎn)左邊的最大位數(shù)。s必須是從0到p的值,只有在指定了精度的情況下才能指定s,s的默認(rèn)值是0,因此,0 <= s <= p。

p的大小也同時(shí)決定了存儲(chǔ)位數(shù)的大小:

精度大小 存儲(chǔ)位數(shù)
1-9 5
10-19 9
20-28 13
29-38 17

因?yàn)閜和s必須遵守規(guī)則:0 <= s <= p <= 38,所以decimal(p, s)實(shí)際上能夠表示的有效值是從-10^38+1到10^38-1。這就意味著,decimal數(shù)據(jù)類型的最大精度是38,即最多可以存儲(chǔ)38位數(shù)字,所有這些數(shù)字均可位于小數(shù)點(diǎn)后面。decimal數(shù)據(jù)類型存儲(chǔ)精確的數(shù)字表示形式,沒有近似值。

小數(shù)的除法

小數(shù)的除法實(shí)際上是近似運(yùn)算,因此在使用除法的時(shí)候SQL Server會(huì)自動(dòng)將小數(shù)的類型提升為float類型(隱式數(shù)據(jù)類型升級(jí))。

小數(shù)常量的默認(rèn)數(shù)據(jù)類型是decimal,但是float類型的優(yōu)先級(jí)比decimal類型要高。在默認(rèn)的情況下,SQL Server會(huì)將小數(shù)數(shù)值的常量自動(dòng)轉(zhuǎn)換為decimal數(shù)據(jù)類型(常態(tài)下),而在進(jìn)行小數(shù)的除法運(yùn)算的時(shí)候,則會(huì)就近進(jìn)行數(shù)據(jù)類型的升級(jí),轉(zhuǎn)換為float(24)或float(53)數(shù)據(jù)類型(運(yùn)算時(shí))。

簡(jiǎn)單舉個(gè)例子,常量12.345在常態(tài)下會(huì)被解析并轉(zhuǎn)換為numeric(5, 3)的數(shù)值類型,即使用最小精度5和最小小數(shù)位數(shù)3;而在運(yùn)算除法時(shí),比如12.345/2則會(huì)被解析并轉(zhuǎn)換為float(24),即最小精度的近似數(shù)值類型。

小數(shù)轉(zhuǎn)為字符串

相比cast(float_expression as float(24/53)),使用str()函數(shù)更能夠有效控制近似數(shù)值的小數(shù)位數(shù),因?yàn)閟tr()函數(shù)獲取的是近似數(shù)值。

str(float_expression [ , length [ , decimal ] ])

標(biāo)簽MSSQL,SQLServer,技術(shù)文檔,數(shù)據(jù)庫(kù),SQLSERVER

相關(guān)下載

查看所有評(píng)論+

網(wǎng)友評(píng)論

網(wǎng)友
您的評(píng)論需要經(jīng)過審核才能顯示

熱門閱覽

最新排行

公眾號(hào)

主站蜘蛛池模板: 成人永久免费视频 | 国产成人精品男人的天堂538 | 2级毛片| 在线a毛片免费视频观看 | 日本三级全黄三级a | 亚洲成人黄色网 | 欧美一做特黄毛片 | 777444欧美影视 | 中国女人毛茸茸免费视频 | 欧美一级毛片在线 | 97操碰 | 久久精品人人爽人人爽快 | 怡红院免费播放全部视频 | 在线看免费观看韩国特黄一级 | 中国女人18xnxx视频 | 韩国啪啪网站 | 欧美日韩视频一区二区在线观看 | 中国高清色视频www 中国黄色网址大全 | 国产一区二区在线视频 | 国产精品国产亚洲精品看不卡 | 亚洲成人在线视频 | 国产一二三区视频 | 久久亚洲一级α片 | 97在线观看完整免费 | 超清国产粉嫩456在线免播放 | 欧美亚洲日本在线 | 97精品国产福利一区二区三区 | 国产精品99r8免费视频2022 | 欧美视频在线观看网站 | 欧美上床视频 | 中文字幕亚洲一区二区三区 | 高清一区二区 | 毛片免费全部免费观看 | 日本卡一卡2卡3卡4精品卡无人区 | 亚洲精品自拍视频 | 日韩毛片免费视频一级特黄 | 国产精品免费观在线 | 嫩草影院ncyy在线观看 | 亚洲欧美卡通动漫丝袜美腿 | 国产va精品网站精品网站精品 | 毛片在线高清免费观看 |