如何在 Web 应用程序中处理和/或存储货币价值? [复制]
Posted
技术标签:
【中文标题】如何在 Web 应用程序中处理和/或存储货币价值? [复制]【英文标题】:How to handle and/or store money values in web applications? [duplicate] 【发布时间】:2016-06-21 17:19:29 【问题描述】:我在 Laravel 4 和 mysql 中使用 php,但我不确定如何处理货币价值。
我想用这种格式显示它们:
120,50€
1.000,50€
金额字段的类型为DECIMAL(12,2)
。
我应该像12050
还是像120,50
这样保存金额?
【问题讨论】:
这实际上不是一个完整的副本,因为他也在询问如何在代码中表示它 【参考方案1】:我建议使用:
您的数据库中的十进制欧元值 (1000.50)
美分 (100050) 在计算中
向用户显示的格式化字符串 (1.000,50€)
更多详情
对于在 MySQL 数据库中存储字段,DECIMAL(12,2)
之类的内容非常有意义。这是一个具有正确精度(两位小数)的数值,允许您存储最大为 9999999999.99 的任何货币值。
美分非常适合计算,因为它允许您在计算中将货币值视为整数,这样使用起来更实用(尤其是除法和乘法),并且通常是您希望货币值达到的水平向上或向下舍入到。
无论您如何在数据库中存储数据或如何进行计算,您都希望您的用户以他们熟悉的格式查看金额。例如,美元的格式通常为 $1,000.50,欧元的格式通常为 1.000,50€。
【讨论】:
非常感谢!我已经实现了这种方式,并且它对我来说完美无缺。再次感谢! @WillfransVarónSáenz:不客气。我很高兴能帮上忙! 如果所有计算均以欧元计算,DECIMAL(12,2) 就可以了。但是,如果要使用其他货币,则需要记住,某些货币不使用 2 位小数。有些没有,有些 3,有些 4。en.wikipedia.org/wiki/ISO_4217#Active_codes以上是关于如何在 Web 应用程序中处理和/或存储货币价值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章