2012-06-21 117 views
4

重量(公斤)和高度(米)數據的MySQL字段類型是什麼?重量和高度數據的MySQL字段類型

+0

你們會只用整數或浮點數?您需要存儲的最大可能價值是多少?你會存儲負數還是隻有正數? – Wiseguy

+0

它應該考慮我認爲的浮點數。 EX:80,550(80千克,550克)最大值適用於嬰兒(10千克,1米)。所有積極的,當然。 LOL –

回答

6

這一切都取決於。對於不同的數字類型,優點和缺點如下:

如果您絕對需要高度/重量精確到小數位數並且不受浮點數可能導致的問題的影響,請使用decimal()(十進制需要兩個參數,數字位數> 1,位數< 1,因此十進制(5,2)將能夠存儲低至0.01和高達999.99的數字)。固定精度的數學運算速度稍慢,並且因爲執行算法涉及的算法而存儲它們的成本更高。絕對必須存儲貨幣值或您打算用數字()涉及貨幣進行數學計算的任何值。例如,如果您是爲每個嬰兒每磅或每米付費,則需要使用數字()。

如果您願意接受某些數值不如其他值精確的可能性,請根據所存儲數字的精度和大小使用FLOAT或DOUBLE。浮點是基於計算機進行數學運算的方式的近似值,我們使用小數點來表示計算出的10次方,計算機以2爲底的數學計算,兩者不能直接比較,所以爲了解決這個問題, %精度不是必需的,但更快的速度是必要的,這是通過使用整數集合建模無法實現的。

欲瞭解更多信息:

http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.html http://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html

+0

我不認爲十進制(5,2)會存儲大至99999.99的值。第一個數字是總位數。 Doc: https://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html 「標準SQL要求DECIMAL(5,2)能夠將任何值存儲爲5數字和兩位小數,因此可存儲在工資欄中的值範圍爲-999.99至999.99。「 –

+1

謝謝@JRLawhorne這已被糾正。 – hsanders