如何在 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 应用程序中处理和/或存储货币价值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在数据库中存储货币价值的最佳方式是啥?

加密数字货币的核心技术价值及应用场景

在 PIG 中处理货币价值 - pigstorage

如何处理JavaScript 中的货币值?

人工智能和数据分析如何将数据货币化

疫情对数字货币的影响解析:数字货币如何推动社会协作和价值交换