① sql語句 decimal(18,0)什麼意思
decimal(18,0),數值中共有18位數,其中整數佔18位,小數佔0位。Decimal(n,m)表示數值中共有n位數,其中整數n-m位,小數m位。
例:decimal(2,1),此時,插入數據「12.3」、「12」等會出現「數據溢出錯誤」的異常;插入「1.23」或「1.2345...」會自動四捨五入成「1.2」;插入「2」會自動補成「2.0」,以確保2位的有效長度,其中包含1位小數。
當用 int類型會有溢出時,可以用 decimal 類型進行處理,把結果可以用 convert 或是 cast 進行轉換。
(1)sql小數點是什麼意思擴展閱讀:
Decimal 數據類型Decimal 變數存儲為 96 位(12 個位元組)無符號的整型形式,並除以一個 10 的冪數。這個變比因子決定了小數點右面的數字位數,其范圍從 0 到 28。變比因子為 0(沒有小數位)的情形下,最大的可能值為 +/-79,228,162,514,264,337,593,543,950,335。
在有 28 個小數位的情況下,最大值為 +/-7.9228162514264337593543950335,而最小的非零值為 +/-0.0000000000000000000000000001。注意 此時,Decimal 數據類型只能在 Variant中使用,也就是說,不能聲明一變數為 Decimal 的類型。
不過可用 Cdec 函數,創建一個子類型為 Decimal 的 Variant。 這樣就對了。Decimal類型消除了發生在各種浮點運算中的舍入誤差,並可以准確地表示28個小數位。
② sql server 小數欄位設為哪種類型
在SQL Server中,實際上小數數值只有兩種數據類型:float和decimal,分別是近似數值和精確數值。
float 表示近似數值,存在精度損失,數據類型是 float(n),n是可選的,默認類型是float(53),佔用8bytes。雖然n的取值范圍是1-53,實際上,float 只能表示兩種類型float(53) 和 float(24),分別佔用 8Bytes 和 4Bytes。
decimal不存在精度損失,數據類型decimal(p,s) 需要分別指定小數的最大位數(p)和小數位的數量(s)。decimal 數據類型的最大精度為 38。即decimal 數據類型最多可以存儲 38位數字,所有這些數字均可位於小數點後面。decimal 數據類型存儲精確的數字表示形式,沒有近似值。
(2)sql小數點是什麼意思擴展閱讀:
雙精度(double precision)數據類型等價於 float(53),real等價於float(24),numeric是 decimal的同義詞,應該避免在程序中直接使用double precision、real和numeric,而是用 float(24) 、float(53)和decimal 代替。
float是近似數值,存在精度缺失;decimal是精確數值,不存在精度損失。當數值不允許精度丟失時,使用 decimal數據類型存儲數據。在計算小數的除法時,SQL Server 內部隱式升級數據類型,根據小數數值的數據類型,就近向float(24) 或float(53)轉換。
③ SQL中 數據類型(14,2) 包含小數點么
14是精度,2是小數位數
numeric[(p[, s])]
定點精度和小數位數。使用最大精度時,有效值從 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同義詞是 dec 和 dec(p, s)。
p(精度)
指定小數點左邊和右邊可以存儲的十進制數字的最大個數。精度必須是從 1 到最大精度之間的值。最大精度為 38。
s(小數位數)
指定小數點右邊可以存儲的十進制數字的最大個數。小數位數必須是從 0 到 p 之間的值。默認小數位數是 0,因而 0 <= s <= p。最大存儲大小基於精度而變化。
請注意!小數據位數可以不添,這樣就是默認為整數了。