可以在MySQL中存储小数(22,2)的钱吗?

可以将钱存储为MySQL中的
decimal(22,2)
吗?我正在为虚拟世界编写基于Web的市场和广告网络。     
已邀请:
如果有人有性生活费怎么办?!?这个领域不可能包含这一大堆 本杰明.... 但严肃地说,SQL Server和PostgreSQL有money数据类型,Access有货币数据类型。 Oracle和MySQL都没有。 此线程 - 用于在MySQL数据库中存储货币值的最佳数据类型 但是出于某种原因推荐4位有效数字,我想如果你需要分数美分(股票等)。 如果没有用户可以超过性价比(严肃性),并且您不需要计算存储的分数,您的格式应该没问题。     
你应该问自己“使用我的程序,有多少钱会有什么用?”和“我要求我的小数位数到什么精度?” 如果你只需要处理高达十亿,那么似乎(10,2)就足够了。如果你想要更准确的利息计算,也许你想要(10,5)。如果你只是跟踪工资和年薪,看起来(7,2)就足够了(我想成为7部分,谢谢!) 在不知道数据目的的情况下,很难回答这个问题。我能给你的只是你要问自己的问题。     
如果要在数据库中存储货币,可以使用int类型但存储在最小值(美元分),然后在需要时除以100。它会更快地运作。     
@Orbit在此页面上接受的答案提到SQL Server具有
money
数据类型。 但是,根据这个答案(你应该在SQL Server中选择MONEY或DECIMAL(x,y)数据类型吗?),在SQL Server中存储货币值的更好选择是
decimal(19,4)
- 这在MySQL中也是可用的。 根据我的理解,由于浮点舍入误差,在
SQL Server
中使用
money
类型进行计算时应该小心。并且它可以间接地使用
decimal(19,4)
类型。 所以...
decimal(22,2)
类型可以存储货币价值......但正如许多人似乎建议的那样,
decimal(19,4)
会更好。     

要回复问题请先登录注册