建了一張測驗表,欄位a為float(11,4),欄位b為double (11,4),欄位a為decimal (11,4)
1、插入資料:
INSERT INTO test (a, b, c) VALUE ('123456.888','123456.888','123456.888')
為啥欄位a的值是“123456.8906”?
2、插入資料:
INSERT INTO test (a, b, c) VALUE ('92345678.888','92345678.888','92345678.888')
為啥全部變了,不是添加的值,不能等于11位嗎?
3、怎么選擇合適的資料型別,比如decimal用于賬務計算類的,那float,和double呢,float(11,4)括號的11是精度,精度的意思是精確到11 位嗎?
uj5u.com熱心網友回復:
建議都用decimalfloat double這種低精度的唯一好處就是占用空間少而已
uj5u.com熱心網友回復:
你的插入的 INSERT INTO test (a, b, c) VALUE ('92345678.888','92345678.888','92345678.888')在我資料庫當中報錯,因為你設定的 11 是指的是位數包括小數點,因此是超過11位。
單精度浮點數Float: 當資料范圍在±131072(65536×2)以內的時候,float資料精度是正確的,但是超出這個范圍的資料就不穩定。
double 和decimal 數值范圍較大。因此建議使用 double 以及decimal數值型別
uj5u.com熱心網友回復:
你的場景decimal(m,n),如果精度要求不是嚴格的話選擇double float,float double雖然精度低,但占用的空間比較小。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/89479.html
標籤:MySQL
