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

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > MS_SQL > SQL開發知識:詳細分析sqlserver中的小數類型(float和decimal)

          SQL開發知識:詳細分析sqlserver中的小數類型(float和decimal)

          時間:2024-02-05 12:47作者:下載吧人氣:22

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

          float(近似數值類型)

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

          float(n)

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

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

          使用近似數值要格外注意盡量避免相等比較,因為比如1可以被存儲為1.000000056,也可以被存儲為1.00000000672,進行相等比較會得到意料之外的結果。

          decimal(精確數值類型)

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

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

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

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

          p的大小也同時決定了存儲位數的大?。?/p>

          精度大小 存儲位數
          1-9 5
          10-19 9
          20-28 13
          29-38 17

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

          小數的除法

          小數的除法實際上是近似運算,因此在使用除法的時候SQL Server會自動將小數的類型提升為float類型(隱式數據類型升級)。

          小數常量的默認數據類型是decimal,但是float類型的優先級比decimal類型要高。在默認的情況下,SQL Server會將小數數值的常量自動轉換為decimal數據類型(常態下),而在進行小數的除法運算的時候,則會就近進行數據類型的升級,轉換為float(24)或float(53)數據類型(運算時)。

          簡單舉個例子,常量12.345在常態下會被解析并轉換為numeric(5, 3)的數值類型,即使用最小精度5和最小小數位數3;而在運算除法時,比如12.345/2則會被解析并轉換為float(24),即最小精度的近似數值類型。

          小數轉為字符串

          相比cast(float_expression as float(24/53)),使用str()函數更能夠有效控制近似數值的小數位數,因為str()函數獲取的是近似數值。

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

          標簽MSSQL,SQLServer,技術文檔,數據庫,SQLSERVER

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 在线视频一区二区三区三区不卡| 亚洲乱码日产一区三区| 在线播放国产一区二区三区| 免费看AV毛片一区二区三区| 97精品国产一区二区三区| 亚洲日本精品一区二区| 国产AV午夜精品一区二区三| 国产一区二区三区高清在线观看| 国产亚洲欧洲Aⅴ综合一区| 一区二区视频在线免费观看| 日韩十八禁一区二区久久| 精品一区二区三区免费毛片| 波霸影院一区二区| 日韩一区二区三区精品| 国产乱码精品一区二区三| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | a级午夜毛片免费一区二区| 亚洲一区二区三区无码影院| 三上悠亚亚洲一区高清| 免费视频精品一区二区三区| 亚洲AV无码一区二区三区系列| 无码少妇一区二区性色AV| 国产精品一区二区久久精品| 在线观看国产一区二三区| 精品久久久久久无码中文字幕一区| 无码人妻精品一区二区三区不卡| 国产一区二区三区免费视频| 国产精品亚洲综合一区| 亚洲狠狠久久综合一区77777| 亚洲字幕AV一区二区三区四区| 另类国产精品一区二区| 一区二区三区免费视频网站 | 亚洲一区精品无码| 国产成人无码精品一区二区三区| 精品无码人妻一区二区三区| 亚洲AV无码一区二区三区鸳鸯影院| 日本精品一区二区久久久| 亚洲老妈激情一区二区三区| 97久久精品无码一区二区天美| 国产av一区二区精品久久凹凸| 中文字幕永久一区二区三区在线观看|