1. 程式人生 > >MySql資料型別分析(數值(小數型)型別) Part2

MySql資料型別分析(數值(小數型)型別) Part2

一.小數型 包括兩種型別:

1.浮點型 Float(M,D)

2.定點型 decimal(M,D)

二.M,D分析

1.小數型中的M和整數中的M 大不相同

2.整數中的M 與所存資料的大小沒有關係,只在有ZEROFILL修飾符時,控制顯示填充零的為數有關。

3.小數中的M與所存資料的大小有必然關係,假如 申請型別為:float(6,2):其中,6代表小數型別為 不包括小數點在內為6為,其中2代表小數位,因此,能存入-9999.99到+9999.99

4.如果Float(6,2) 帶有標示符 Unsigned,則此資料型別的儲存範圍為:0.00到+9999.99

舉例:

建立表goods:

create table goods

(

name varchar(10) not null default ' ',

price float(6,2) not null default 0.00

) charset utf8;

插入一條資料:

insert into goods

(name,price)

values

('跑步機',688.896);

點選回車,執行成功;

三.大家可以看到,已經成功插入到goods表中,

其中,小數 688.896 經舍入法 進行了擷取,

Mysql中預設的舍入法 是 銀行家舍入法,下一篇將說明 銀行家舍入法

四.定點型別

decimal(M,D)

分析:

1.定點型別和浮點型別 用法差不多,區別就是定點型別的精度比浮點型別的精度高。

舉例:

在foods表中增加兩列

alter table foods

add

bigprice float(9,2) not null default 0.00;

alter table foods

add

decimprice decimal(9,2) not null default 0.00;

插入一條資料:

insert into foods

(name,bigprice ,decimprice )

values

('自行車',1234567.23,1234567.23);

執行結果:

由此看出,decimal型別更精確


五.小數型別在記憶體中佔用的位元組

小數型別在記憶體中佔用的位元組數是固定的,並不是說,你輸入M的值大,位元組數就會變大。

小數型別 在計算機中佔用4個位元組,或8個位元組,小數型別的計算非常複雜。