【问题标题】:How to handle and/or store money values in web applications? [duplicate]如何在 Web 应用程序中处理和/或存储货币价值? [复制]
【发布时间】:2016-06-21 17:19:29
【问题描述】:

我在 Laravel 4 和 MySQL 中使用 PHP,但我不确定如何处理货币价值。

我想用这种格式显示它们:

  120,50€
1.000,50€

金额字段的类型为DECIMAL(12,2)

我应该像12050还是像120,50这样保存金额?

【问题讨论】:

  • 这实际上不是一个完整的副本,因为他也在询问如何在代码中表示它

标签: php mysql laravel currency money-format


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 2015-01-12
  • 2011-03-16
相关资源
最近更新 更多