在MySql中存储货币值的最佳方法是什么。
我见过这个:十进制(5,2)
但是你不能输入超过$ 999.99的金额。我的意思是我知道你可以将5改为其他东西,但这似乎不是最合适的方式。然后我再也不确定这就是我发布的原因。
我也看到将金额存储为unsigned int。那么存储货币价值的最有效方法是什么呢?
答案 0 :(得分:4)
您预计需要存储的货币价值有多大? DECIMAL(15,2)
会处理大多数人会对它施加的东西。
我也看到将金额存储为unsigned int。
无符号表示该值永远不会为负数 - 如果是这种情况,您需要其他方法来指示该值是否为负值。我不推荐这种方法。
答案 1 :(得分:1)
您的决定必须包括如何执行舍入。企业倾向于对他们有利,但数学四舍五入可能是首选,而且根本不关心。这些可能会影响您的存储选择。
答案 2 :(得分:1)
货币怎么样?如果要在多个区域设置中支持分布式客户端,则需要嵌入每个货币值的货币/区域设置。其他DB如何处理这个?
对于有符号整数值,决定什么是“最小利息值”是一个商业决策(你关心0.001c吗?这意味着你不介意在1000次连续交易中丢失1c - 这是例如,计算对低值的兴趣也很重要。如果0.001c没问题,那么当你写入表格时,将所有值乘以1000,当你读回它时除以1000 ......
答案 3 :(得分:0)
为什么不将值保存在尽可能低的单位中并让脚本转换为通常的表示形式?
这样你可以将值存储为整数。