Decimal

Decimal

Decimal為SQL Server、MySql等資料庫的一種數據類型,不屬於浮點數類型,可以在定義時劃定整數部分以及小數部分的位數。使用精確小數類型不僅能夠保證數據計算更為精確,還可以節省儲存空間,例如百分比使用decimal(4,2)即可。存儲數據範圍是:-10^38~10^38 的固定精度和小數位的數字。一個decimal類型的數據占用了2~17個位元組。 在C#里decimal表示 128 位數據類型。與double相比,decimal 類型具有更高的精度和更小的範圍,它適合於財務和貨幣計算。

基本內容

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個小數位。

Decimal數據類型可以在powerBuilder中使用。直接在編寫控制項的時候使用就可以了。比如:當編寫一個Clicked事件腳本時就可以decimal r這樣使用。

Decimal數據類型可以在Visual Studio編輯器中使用,只要在一個浮點類型的值後加一個大寫或小寫的M,則編輯器會認為這個浮點類型的值是一個Decimal類型。這種128位高精度十進制數表示法通常用在財務計算中。要注意的是,在.NET環境中,計算該類型的值會有性能上的損失,因為它不是基本類型。

decimal[ (p[ , s] )] and numeric[ (p[ , s] )]

固定有效位數和小數位數的數字。當使用最大有效位數時,有效值是從 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同義字是 dec 和 dec(p, s)。numeric 的功能相當於 decimal。

位數

p (有效位數)

可儲存的最大十進位數總數,小數點左右兩側都包括在內。有效位數必須是 1 至最大有效位數 38 之間的值。預設有效位數是 18。

s (小數位數)

小數點右側所能儲存的最大十進位數。小數位數必須是從 0 到 p 的值。只有在指定了有效位數時,才能指定小數位數。預設小數位數是 0;因此,0 <= s <= p。最大儲存體大小會隨著有效位數而不同。

Decimal(n,m)表示數值中共有n位數,其中整數n-m位,小數m位。例:decimal(10,6),數值中共有10位數,其中整數占4位,小數占6位。

例:decimal(2,1),此時,插入數據“12.3”、“12”等會出現“數據溢出錯誤”的異常;插入“1.23”或“1.2345...”會自動四捨五入成“1.2”;插入“2”會自動補成“2.0”,以確保2位的有效長度,其中包含1位小數。

當用 int類型會有溢出時,可以用 decimal 類型進行處理,把結果可以用 convert 或是 cast 進行轉換。

相關詞條

相關搜尋

熱門詞條

聯絡我們