MSSQL數據類型-浮點數據類型 (real、float、decimal、numeric)

2021-01-11 性感的小土豆

浮點數據類型包括real型、float型、decimal型和numeric型。浮點數據類型用於存儲十進位小數。在SQL Server 中浮點數值的數據採用上捨入(Round up)的方式進行存儲,所謂上捨入也就是,要捨入的小數部分不論其大小,只要是一個非零的數,就要在該數字的最低有效位上加1,並進行必要的進位。由於浮點數據為近似值,所以並非數據類型範圍內的所有數據都能精確地表示。

real型數據的存儲大小為4個字節,可精確到小數點後第7位數字。這種數據類型的數據存儲範圍為從-3.40E+38~-1.18E-38,0和1.18E-38~3.40E+38。 在MSSql中real的同義詞是float,用法幾乎一樣。

float型的數據存儲大小為8個字節,可精確到小數點後第15位數字。這種數據類型的數據存儲範圍為從-1.79E+308~-2.23E-308,0和2.23E+308~1.79E+308。 FLOAT(size,d) 帶有浮動小數點的小數字。在括號中規定最大位數。在 d 參數中規定小數點右側的最大位數。float型的數據可寫成float[(n)]的形式。其中n是1~15之間的整數值,指定float型數據的精度。當n為1~7時,實際上用戶定義了一個real型的數據,系統用4個字節存儲;當n為8~15時,系統認為它是個float型的數據,用8個字節存儲它。這樣既增強了數據定義的靈活性,又節省了空間。

decimal數據類型和numeric數據類型的功能完全一樣,它們都可以提供小數所需要的實際存儲空間,但也有一定的限制,用戶可以用2~17個字節來存儲數據,取值範圍是-1038+1~1038-1。 DECIMAL(size,d) 作為字符串存儲的 DOUBLE 類型,允許固定的小數點。在括號中規定最大位數。其中size表示可供存儲的值的總位數(不包括小數點),默認值為18;d表示小數點後的位數,默認值為0;參數之間的關係是0≤d≤size。例如:decimal(15,5)表示共有15位數,其中整數10位,小數5位。

若一個數是上捨入數,其絕對值不會減少。如:對3.14159265358979 分別進行2 位和12位捨入,結果為3.15 和3.141592653590。在精度上還是有很大的差別的,所以在創建資料庫時一定要對欄位的數據類型進行精準的分析,確保在插入數據值的最大精度上不要出現差錯這樣才不會使數據在運算的過程中出現大的偏差。例如在月底或者年底匯總報表時查詢出的數據是小數,在運算完以後的數據也是小數,可是在增加到匯總表裡的時候變成整數了,這種情況往往就是資料庫中表在建立的時候沒有有效的設置浮點型數據的小數點後面精度的問題使其數據發生了上捨入現象。

相關焦點

  • PHP丨PHP基礎知識之數據類型之間相互轉換
    昨天剛講完PHP基礎知識數據類型,今天就來講講PHP數據類型的轉換。轉換變量或者值的類型,轉換成其他數據類型的方法主要分為兩大類:自動轉換和強制轉換。(int)、(integer):轉換成整形(float)、(double)、(real):轉換成浮點型(string):轉換成字符串(bool)、(boolean):轉換成布爾類型(array
  • 詳解C語言數據類型:float與double
    因此,當您向printf傳遞float類型的參數時,實際上它會在轉換為printf之前就轉換為double類型。我們可以使用調試器證明這一點。我寫了下面的C代碼:主要功能編譯成:我在調用printf之前(在地址0x63b處)放了一個斷點。
  • 大數據開發基礎:Java基礎數據類型
    在Java基礎入門學習階段,Java基礎數據類型無疑是基礎當中的重點,掌握基礎數據類型,對於後續去理解和掌握更深入的理論,是有緊密的關聯性的。今天的大數據開發基礎分享,我們就來講講,Java八種基礎數據類型。
  • Java數據類型-精簡
    接下來我就先介紹下Java的基本數據類型。基本數據類型字節型(byte)字節型是一種 8 位有正負的二進位整數最小值是 -128最大值是 127默認值為 0短整數(short)短整數是一種 16 位有正負的二進位整數最小值是 -32768最大值是 32767短整數類型的數據也可以像字節型一樣用於節省空間。
  • 數據類型:Number類型 String類型 Object類型
    以下是浮點數值的幾個例子:  var floatNum1 = 1.1;  var floatNum2 = 0.1;  var floatNum3 = .1; // 有效,但不推薦  ---  由於保存浮點數值需要的內存空間是保存整數值的兩倍,因此ECMAScript 會不失時機地將浮點數值
  • Numpy基礎:創建ndarray及數據類型
    它接受一切序列型的對象(包括其他數組),然後產生一個新的含有傳入數據的Numpy數組。np.array會嘗試為新建的這個數組推斷出一個較為合適的數據類型。數據類型保存在一個特殊的dtype對象中。其他一些可以新建數組的函數。比如zeros和ones分別可以創建指定長度或形狀的全0或全1數組。empty可以創建一個沒有任何具體值的數組。
  • C/C+編程筆記:C+的三大數據類型(原始、派生、抽象)
    例如:int,char,float,bool等。C++中可用的原始數據類型為: (1)整數 (2)字符 (3)布爾型 (4)浮點 (5)雙浮點數 (6)void (7)寬字符
  • C/C++編程筆記:C ++的三大數據類型(原始、派生、抽象)
    例如:int,char,float,bool等。C++中可用的原始數據類型為: (1)整數 (2)字符 (3)布爾型 (4)浮點 (5)雙浮點數 (6)void (7)寬字符
  • 【跟著stackoverflow學Pandas】- Pandas修改列的類型
    Pandas: change data type of columns - Pandas修改列的類型我們利用pandas進行數據處理經常會遇到數據類型不符的問題
  • python的核心數據類型有哪些?
    數據類型數字: int,long,float,complex,bool字符: str,unicode列表: list字典: dict元組: tuple文件: file其他類型: 集合(set),frozenset,類類型,None類型轉換str(),repr()或format(): 將非字符類型數據轉換為字符int(): 轉為整數float
  • 面試官:Java 中有幾種基本數據類型是什麼?
    認識基本數據類型在學習基本數據類型之前,我們先認識一下這兩個單詞:1、bit --位:位是計算機中存儲數據的最小單位,指二進位數中的一個位數,其值為「0」或「1」。2、byte --字節:字節是計算機存儲容量的基本單位,一個字節由8位二進位數組成。
  • Python數據類型之數字(Numbers)和運算符
    # Numbers(數字)類型分類# 1、整數 int># 2、浮點數 float# 3、複數 complex# 整型:通常被稱為整數,可以是正整數或負整數,不攜帶小數點;Python3中整型是沒有限制大小的,可以當做長整型(long)類型使用。
  • Python實驗課:Python數字類型
    :# 創建整數對象intNum = 32print(intNum)# 創建浮點對象floatNum = 3.5print(floatNum)# 創建布爾對象boolNum = Trueprint(boolNum)# 創建複數對象complexNum
  • Java數據類型的「誰都看得懂」總結
    Java數據類型總結(用你敏銳的洞察力猜猜上圖可以組成什麼詞?)Java語言是一種強類型語言,所謂強類型語言就是所有變量的使用都必須嚴格符合規定,所有變量都必須先定義後使用。而Java的數據類型分為兩大類,分別是基本類型和引用類型,引用類型主要有類、接口和數組等等,那麼這裡主要總結的的是基本類型,基本數據類型呢,又可以分為數值類型和布爾類型(即Boolean類型),布爾類型比較簡單,它只有兩個值(true和false)。數值類型又可以再往下劃分,分別分為整數類型、浮點數類型以及字符類型。
  • VBA代碼中可用的六種數據類型
    當把布爾值轉換成其他數據類型時,False會轉換為0,True則是-1。注意:和EXCEL的不同點:VBA中當把布爾值轉換成其他數據類型時,False會轉換為0,True則是-1。四 數字的類型 VBA中用於表示數字的數據類型有4種:整型 Integer,佔用兩個字節;長整型 Long,佔用4個字節;單精度浮點型 Single,佔用4個字節;雙精度浮點型 Double,佔用8個字節.1. 整型及長整型用於表示整數,單精度與雙精度浮點型都用於表示小數。
  • Python基礎學習之常用六大數據類型
    剛開始學習一門程式語言,除了了解運行環境與語言類型之外,最基本還是從該語言的基本數據類型開始學起。Python六大常用數據類型: int 整數 float 浮點數 str 字符串 list 列表 tuple 元組 dict 字典講解這些先說一下python中的變量與變量名。
  • Java基礎學習:java中的基本數據類型
    2、基本信息 基本類型包括如下幾種:byte、short、int、long、float、double、boolean、char,可以通過相關方法查看範圍大小。
  • 今天學Python第三課常用的數據類型有三種字符串,整數,浮點數
    數據類型在Python裡,常用的數據類型有三種,字符串,整數,浮點數字符串首先, 我們來看一下「黃袍加身」的字符串, 字符串英文名string,簡稱str。 其實, 在上一課的時候, 你已經用過它了,看面龐很熟悉。
  • Xilinx Vivado HLS中Floating-Point(浮點)設計介紹
    這是因為Fixed-Point有限的數據動態範圍,需要深入的分析來決定整個設計中間數據位寬變化的pattern,為了達到優化的QoR,並且要引入很多不同類型的Fixed-Point中間變量。而Floating-Point具有更大的數據動態範圍,從而在很多算法中只需要一種數據類型的優勢。