1. mysql 存儲價格用什麼數據類型好
你好:由於價格是屬於貨幣類型的。
所以可以使用decimal(m,n)這個數據類型來精確表達價格
不要使用float double等浮點數據類型 因為它們是不精確的 特別是在計算的時候
2. mysql 建表時的價格用什麼類型定義
MySQL中可以用來做價格的欄位一般有float、double、decimal
如定義一個money欄位類型為float(9,2),則money欄位最大長度為9,整數位是6位,小數位是2位。
以下摘自MySQL 5.1參考手冊:
1、FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
小(單精度)浮點數。允許的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。這些是理論限制,基於IEEE標准。實際的范圍根據硬體或操作系統的不同可能稍微小些。
M是小數總位數,D是小數點後面的位數。如果M和D被省略,根據硬體允許的限制來保存值。單精度浮點數精確到大約7位小數位。
如果指定UNSIGNED,不允許負值。
使用浮點數可能會遇到意想不到的問題,因為在MySQL中的所有計算用雙精度完成。參見A.5.7節,「解決與不匹配行有關的問題」。
2、DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
普通大小(雙精度)浮點數。允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到 1.7976931348623157E+308。這些是理論限制,基於IEEE標准。實際的范圍根據硬體或操作系統的不同可能稍微小些。
M是小數總位數,D是小數點後面的位數。如果M和D被省略,根據硬體允許的限制來保存值。雙精度浮點數精確到大約15位小數位。
如果指定UNSIGNED,不允許負值。
3、DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]
為DOUBLE的同義詞。除了:如果SQL伺服器模式包括REAL_AS_FLOAT選項,REAL是FLOAT的同義詞而不是DOUBLE的同義詞。
4、FLOAT(p) [UNSIGNED] [ZEROFILL]
浮點數。p表示精度(以位數表示),但MySQL只使用該值來確定是否結果列的數據類型為FLOAT或DOUBLE。如果p為從0到24,數據類型變為沒有M或D值的FLOAT。如果p為從25到53,數據類型變為沒有M或D值的DOUBLE。結果列范圍與本節前面描述的單精度FLOAT或雙精度DOUBLE數據類型相同。
FLOAT(p)語法與ODBC兼容。
5、DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
壓縮的「嚴格」定點數。M是小數位數(精度)的總數,D是小數點(標度)後面的位數。小數點和(負數)的『-』符號不包括在M中。如果D是0,則值沒有小數點或分數部分。DECIMAL整數最大位數(M)為65。支持的十進制數的最大位數(D)是30。如果D被省略, 默認是0。如果M被省略, 默認是10。
如果指定UNSIGNED,不允許負值。
所有DECIMAL列的基本計算(+,-,*,/)用65位精度完成。
6、DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]
是DECIMAL的同義詞。FIXED同義詞適用於與其它伺服器的兼容性。
3. mysql 用什麼數據類型表示價格
DECIMAL和NUMERIC都行
DECIMAL和NUMERIC類型在MySQL中視為相同的類型。它們用於保存必須為確切精度的值,例如貨幣數據。當聲明該類型的列時,可以(並且通常要)指定精度和標度;例如:
salary DECIMAL(5,2)
在該例子中,5是精度,2是標度。精度表示保存值的主要位數,標度表示小數點後面可以保存的位數
4. Java編程中,什麼數據類型適合用來表示價格
BigDecimal (java.math.BigDecimal)
就算存儲使用的float或者double,計算金額的時候也務必轉成BigDecimal再計算,以避免精度問題。
Java中存儲金額用什麼數據類型?
Java BigDecimal詳解
5. 在sql server中,價格該用什麼資料庫類型
在sql server中,價格可用的資料庫類型有:
單精度;雙精度和貨幣型,
可根據需要選定。
6. Java 中應該使用什麼數據類型來代表價格
要准確表示單價等貨幣類型的數據用DECIMAL和NUMERIC都行。
DECIMAL和NUMERIC類型在MySQL中視為相同的類型。它們用於保存必須為確切精度的值,例如貨幣數據。當聲明該類型的列時,可以(並且通常要)指定精度和標度;例如:
salary DECIMAL(5,2)
在該例子中,5是精度,2是標度。精度表示保存值的主要位數,標度表示小數點後面可以保存的位數。
7. 數量和價格在c語言定義時是什麼類型
數量為int 或long型 價格一般為 double 或 float型
8. sql 表設計時,面積,單價應該用什麼數據類型
面積用decimal(4,2)單價用int就行了。
9. mysql 存儲金額類型,用什麼數據類型比較可靠,一般企業數據用什麼數據類型
對於游戲幣等代幣,一般存儲為int類型是可行的。問題在於越界,int類型長度為11位。
在存儲人民幣相關的金額的時候,則只能存儲到9長度的人民幣,也就是說,最大隻能存儲999999999,不到10億的數值,如果業務增長很快的話,就會給自己留下隱患。
Decimal:Decimal為專門為財務相關問題設計的數據類型。
DECIMAL從MySQL 5.1引入,列的聲明語法是DECIMAL(M,D)。在MySQL 5.1中,參量的取值范圍如下:M是數字的最大數(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254),M 的默認 值是10。
D是小數點右側數字的數目(標度)。其范圍是0~30,但不得超過M。說明:float佔4個位元組,double佔8個位元組,decimail(M,D)佔M+2個位元組。
如DECIMAL(5,2) 的最大值為9 9 9 9 . 9 9,因為有7 個位元組可用。能夠解決數據的范圍和精度的問題。
(9)價格用什麼類型欄位定義擴展閱讀
MySQL數據類型DECIMAL用法:
MySQLDECIMAL數據類型用於在資料庫中存儲精確的數值。我們經常將DECIMAL數據類型用於保留准確精確度的列,例如會計系統中的貨幣數據。
要定義數據類型為DECIMAL的列,請使用以下語法:column_nameDECIMAL(P,D);
在上面的語法中:
P是表示有效數字數的精度。P范圍為1〜65。
D是表示小數點後的位數。D的范圍是0~30。MySQL要求D小於或等於(<=)P。
DECIMAL(P,D)表示列可以存儲D位小數的P位數。十進制列的實際范圍取決於精度和刻度。
與INT數據類型一樣,DECIMAL類型也具有UNSIGNED和ZEROFILL屬性。 如果使用UNSIGNED屬性,則DECIMAL UNSIGNED的列將不接受負值。
如果使用ZEROFILL,MySQL將把顯示值填充到0以顯示由列定義指定的寬度。 另外,如果我們對DECIMAL列使用ZERO FILL,MySQL將自動將UNSIGNED屬性添加到列。
10. 我想問下在資料庫中一個商品價格欄位應該設置什麼類型
如果是mysql,設置為decimal ;
如果是oracle,就設置為number