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

2020-12-20 性感的小土豆

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

相關焦點

  • MySQL資料庫中float、double、decimal三個浮點類型到底有什麼區別?
    1. float 浮點類型用於表示單精度浮點數值 2. double浮點類型用於表示雙精度浮點數值 這裡肯定有些小夥伴要問了 什麼是單精度? 什麼是雙精度 ?下面我們就來簡單了解一下吧!首先,我們知道一個bytes(字節) 佔8位 對吧!
  • 當pandas遇上數據類型問題
    ,確保自己使用的是正確的數據類型,這一點很重要。而在pandas中,一般情況下會根據我們導入的數據,自動分配最合適的數據類型。但是有時候pandas也會犯錯,這時候我們就需要diy自定義數據類型。本文主要將pandas的dtype,如何進行數據類型的操作。pands數據類型數據類型是程式語言的基礎性概念,ta會告訴電腦如何存儲數據、如何操作數據。
  • Go 數據類型篇(二):布爾類型、整型、浮點型和複數類型
    關於類型轉換我們在後面介紹完所有數據類型後會單獨介紹。浮點型浮點型也叫浮點數,用於表示包含小數點的數據,比如 3.14、1.00 都是浮點型數據。在 Go 語言裡,定義一個浮點型變量的代碼如下:var floatValue1 float32floatValue1 = 10floatValue2 := 10.0 // 如果不加小數點,floatValue2 會被推導為整型而不是浮點型floatValue3 := 1.1E-10對於浮點類型需要被自動推導的變量
  • 尚學堂知識整理:Java float數據類型
    Java使用IEEE 754浮點標準存儲實數。有兩種類型的浮點類型,float和double,分別表示單精度和雙精度數。它們的寬度和範圍如下所示:浮點數據類型浮點數據類型使用32位來存儲浮點數。作為浮點字面量,它可以寫作32.5E-1F或32.5E-1f。所有以下浮點字面量表示相同的實數42.5:float數據類型定義兩個零:+0.0F(或0.0F)和-0.0F。 +0.0F和-0.0F都被認為是相等的。float數據類型定義了兩個無窮大:正無窮大和負無窮大。未定義浮點的一些操作的結果。
  • MySQL教程之MySQL數據類型詳解
    本文寫的內容是MySQL數據類型,之前寫MySQL系列文章的時候一直忽略的一個知識點,現在想來,我們學習一門語言,無非從兩個方面入手:基本語法,有了語法,我們才可以組織邏輯數據類型,即在特定場景下選擇合適的數據類型,到底是用整型還是浮點型還是字符串,每種數據機構佔多少字節,最大值是多少。
  • PHP丨PHP基礎知識之數據類型之間相互轉換
    (int)、(integer):轉換成整形(float)、(double)、(real):轉換成浮點型(string):轉換成字符串(bool)、(boolean):轉換成布爾類型(array):轉換成數組(object):轉換成對象一、自動轉換類型:自動類型轉換就是編譯器默默地、隱式地、
  • STM32如何收發float類型數據?
    實際應用中,我們可能需要兩個設備通過串口傳輸浮點數據:我們創建一個用於管理float類型數據的共用體:union float_data{    float f_data;    uint8_t byte[4];};數據的流向如:
  • MATLAB小數(浮點數)類型
    如果某個數據沒有被指定數據類型,那麼 MATLAB 會用雙精度浮點數來存儲它。為了得到其他類型的數值類型,可以使用類型轉換函數。MATLAB 中的雙精度浮點數和單精度浮點數均採用 IEEE 754 中規定的格式來定義。其表示範圍、存儲大小和類型轉換函數如下表所示。
  • 詳解C語言數據類型:float與double
    因此,當您向printf傳遞float類型的參數時,實際上它會在轉換為printf之前就轉換為double類型。我們可以使用調試器證明這一點。我寫了下面的C代碼:主要功能編譯成:我在調用printf之前(在地址0x63b處)放了一個斷點。
  • MSSQL數據類型-貨幣數據類型(money、smallmoney)
    貨幣數據類型用於存儲貨幣或現金值,包括money型和smallmoney型。按照類型的取值來區分的話一個是「錢」而另外一個是「小錢」。在使用貨幣數據類型時,應在數據前加上貨幣符號,以便系統辨識其為哪國的貨幣,如果不加貨幣符號,則系統默認為「¥」。
  • Java基本數據類型
    3)浮點類型:分float和double是表示浮點型的數據類型,他們之間的區別在於他們的精確度不同。如果要特別指明一個浮點常量是雙精度常量,數據末尾不需要添加後綴,或者在數據末尾加上d或D作為後綴,如12.34d。float (單精度浮點型)一個float 32位,佔用4個字節,例3.2F,默認是0.0f, 3.402823e+38 ~1.401298e-45(e+38表示是乘以10的38次方,同樣,e-45表示乘以10的負45次方)。
  • 大數據開發基礎:Java基礎數據類型
    在Java基礎入門學習階段,Java基礎數據類型無疑是基礎當中的重點,掌握基礎數據類型,對於後續去理解和掌握更深入的理論,是有緊密的關聯性的。今天的大數據開發基礎分享,我們就來講講,Java八種基礎數據類型。
  • C語言的數據類型簡述
    C語言數據類型分類C語言數據類型分類C語言的數據分類:1.基本類型:整型類型包含:基本整型(int)、短整型(short int)、長整型(long int)、雙長整型(long long int)、字符型(char)和布爾型(bool)。註:整型數據可在類型符號前面加修飾符:signed(有符號整數類型)和unsigned(無符號整數類型),若不指定則默認為「有符號類型」。
  • Matlab中的基本數據類型介紹
    Matlab中支持的數據類型包括:邏輯(logical)字符(char)數值(numeric)元胞數組(cell)結構體(structure)表格(table)函數句柄(functionhandle)1、邏輯型(logical)該類型變量值為1或0。
  • 變量類型測試函數的使用:三、is_float的用法
    昨天剛講完PHP變量類型測試函數【is_int】的用法,今天來講講PHP變量類型測試函數【is_float】的用法。is_floatis_float(字面意思) — 檢測變量是否是浮點型is_float 描述is_float ( mixed $var ) : bool如果 var 是 float 則返回 TRUE,否則返回
  • Java基本數據類型的簡單介紹
    基本數據類型主要分為四類八種,那四個類呢?整數型,浮點型,字符型,布爾型。在這四個類中就有八種。整數型(整數):byte,short,int,long浮點型(小數):float,double字符型:char布爾型:boolean(true,false)那麼這8中數據類型之外的,便是引用數據類型啦
  • ——python數據類型大全:Python數字數據類型
    Python 數字數據類型用於存儲數值。數據類型是不允許改變的,這就意味著如果改變數字數據類型的值,將重新分配內存空間。浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)複數( (complex)) - 複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,
  • Python基礎——基本數據類型(1)
    中有六個標準的數據類型:(a)b = input("請輸入一個整數:")b = eval(b)2.float 浮點型1) 十進位形式這種就是我們平時看到的小數形式,例如 34.6、346.0、0.346。
  • 偽·從零開始學Python - 2.2.1 基本數據類型 - 整型與浮點型
    數據類型簡介儘管都是0和1的序列,但數據在計算機裡的存儲方式千差萬別。我們考慮存儲空間、字節大小、效率、容錯性等因素,根據數據的不同,也會讓計算機以不同的方式存儲數據。這些方式的不同,就是各個數據類型的不同。不同的程式語言都會對數據類型進行定義和分別。Python自身有三大數據類型:整型、浮點型和字符串。整型和浮點型又分多個數據類型。Python內置的整型有整數和布爾型,自身提供的浮點型有浮點數、複數和十進位數字(decimal.Decimal)。
  • Python初級教程(05): 數據類型
    在本教程中,你將了解Python中的各種數據類型。Python中的每個值都有一個數據類型。