1. 程式人生 > >mysql那些事(3)小數如何存儲

mysql那些事(3)小數如何存儲

目前 class div 情況下 浮點 oat 如果 存儲 兩位小數

創建mysql數據表的時候,經常會遇到存儲小數(浮點數)的情況,如:價格,重量,身高等。

目前大的公司流行三種存儲方案:

1、將數據擴大10的倍數達到使用整數類型存儲目的。

比如價格,我們經常以分為單位進行存儲,也就是將數據擴大100倍,這樣元改成分存儲。

重量可以用克為單位,如果克還是小數,就以毫克,微克等單位進行存儲。

2、使用decimal類型的方式存儲

比如價格,我們可以使用兩位小數的精度進行存儲。強烈不建議采用float或者double的類型存儲,會存在精度損失的問題,在以後做值比較的時候,容易出現不正確的結果。

3、小數和整數部分分開存儲。

比如價格3.14,我們存成兩個字段,一個字段存儲3,一個字段存儲14,一般情況下用的少。當存儲的數據範圍超出decimal的範圍時,可以將數據按照整數和小數拆分。

這裏推薦第一種方案。

mysql那些事(3)小數如何存儲