浮點列型別

2021-06-25 10:06:30 字數 1145 閱讀 6428

對於浮點列型別,在mysql中單精度值使用4個位元組,雙精度值使用8個位元組。

float型別用於表示近似數值資料型別。sql標準允許在關鍵字float後面的括號內選擇用位指定精度(但不能為指數範圍)。mysql還支援可選的只用於確定儲存大小的精度規定。0到23的精度對應float列的4位元組單精度。24到53的精度對應double列的8位元組雙精度。

mysql允許使用非標準語法:float(m,d)或real(m,d)或double precision(m,d)。這裡,「(m,d)」表示該值一共顯示m位整數,其中d位位於小數點後面。例如,定義為float(7,4)的乙個列可以顯示為-999.9999。mysql儲存值時進行四捨五入,因此如果在float(7,4)列內插入999.00009,近似結果是999.0001。

mysql將double視為double precision(非標準擴充套件)的同義詞。mysql還將real視為double precision(非標準擴充套件)的同義詞,除非sql伺服器模式包括real_as_float選項。

為了保證最大可能的可移植性,需要使用近似數值資料值儲存的**應使用float或double precision,不規定精度或位數。

decimal和numeric型別在mysql中視為相同的型別。它們用於儲存必須為確切精度的值,例如貨幣資料。當宣告該型別的列時,可以(並且通常要)指定精度和標度;例如:

salary decimal(5,2)

在該例子中,5是精度,2是標度。精度表示儲存值的主要位數,標度表示小數點後面可以儲存的位數。

在mysql 5.1中以二進位制格式儲存decimal和numeric值。

標準sql要求salary列能夠用5位整數字和兩位小數儲存任何值。因此,在這種情況下可以儲存在salary列的值的範圍是從-999.99到999.99。

在標準sql中,語法decimal(m)等價於decimal(m,0)。同樣,語法decimal等價於decimal(m,0),可以通過計算確定m的值。在mysql 5.1中支援decimal和numeric資料型別的變數形式。m預設值是10。

decimal或numeric的最大位數是65,但具體的decimal或numeric列的實際範圍受具體列的精度或標度約束。如果此類列分配的值小數點後面的位數超過指定的標度允許的範圍,值被轉換為該標度。(具體操作與作業系統有關,但一般結果均被擷取到允許的位數)。

浮點型別深談

1 編寫本文目的 浮點運算已屬常用,但仍有深究必要,以消除其中可能的錯誤使用。2 預期讀者 4 正文 float格式簡談 inter 80386 80387 及以上型號cpu有三種浮點型別,即短實數 長實數和80位臨時實數,分別占用4位元組 8位元組和10位元組,對應著c c 中的float dou...

002 浮點型別

浮點型別表示數字包含小數部分。共兩種浮點型別 型別儲存要求 表示範圍 float 4 byte 大約 3.40282347e 38f 有效小數字數6 7位 double 8 byte 大約 1.79769313486231570e 308 有效小數為15位 double的數字的精度是float的兩倍...

java 浮點型別

用於表示溢位和出錯情況的三個特殊的浮點數值 正無窮大 負無窮大 nan 不是乙個數字 例如 一 浮點型 double,float 除以 0 的結果為正無窮大 system.out.println 1.0f 0 結果為 infinity 浮點數值不適用於無法接受捨入誤差的金融計算中 例如 命令 sys...