我想在MySQL数据库中存储许多记录。它们都包含货币价值。但我不知道每个数字要插入多少位。 为此,我必须使用哪种数据类型? VARCHAR或INT(或其他数值数据类型)?


当前回答

如果要求符合GAAP,或者需要小数点后4位:

小数(13、4) 支持最大值为:

The $999999999999

否则,如果小数点后2位足够: 小数(13日2)

src: https://rietta.com/blog/best-data-types-for-currencymoney-in/

其他回答

试着用

Decimal(19,4)

这通常适用于所有其他DB以及

如果您的应用程序需要处理高达万亿的货币值,那么这应该工作:13,2 如果你需要遵守GAAP(公认会计原则),那么使用:13,4

通常你应该把你的货币值加到13,4,然后把输出四舍五入到13,2。

你可以使用DECIMAL或NUMERIC,两者都是一样的

DECIMAL和NUMERIC类型存储精确的数值数据值。当需要保持精确的精确度时,例如货币数据,就会使用这些类型。在MySQL中,NUMERIC被实现为DECIMAL,因此下面关于DECIMAL的说明同样适用于NUMERIC。: MySQL

例如十进制(10,2)

良好的阅读

实际上,这取决于程序员的偏好。我个人使用:数字(15,4)来符合公认会计原则(GAAP)。

在提出这个问题的时候,没有人考虑比特币的价格。在BTC的情况下,使用DECIMAL(15,2)可能是不够的。如果比特币将上涨到10万美元或更多,我们将至少需要DECIMAL(18,9)来支持我们的应用程序中的加密货币。

DECIMAL(18,9)在MySQL中占用12个字节的空间(每9个数字占用4个字节)。