如何在Web应用程序中处理和/或存储货币值?

时间:2016-03-07 23:03:50

标签: php mysql laravel currency money-format

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

我想使用以下格式显示它们:

  120,50€
1.000,50€

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

我应该保存12050或类似120,50的数量吗?

1 个答案:

答案 0 :(得分:6)

我建议使用:

  • 数据库中的十进制欧元值(1000.50)

  • 计算中
  • 美分(100050)

  • 显示给用户的格式化字符串(1.000,50€)

更多详情

对于在MySQL数据库中存储字段,DECIMAL(12,2)之类的内容非常有意义。这是一个具有正确的percision(两位小数)的数值,允许您存储任何货币值,最高可达9999999999.99。

Cents非常适合计算,因为它允许您将货币值视为计算中的整数,这更适合使用(特别是对于除法和乘法),并且通常是您希望货币值达到的水平向上或向下舍入到。

无论您如何将数据存储在数据库中或如何进行计算,您都希望用户以他们熟悉的格式查看数量。例如,美元通常格式为1,000.50美元,欧元格式为1.000,50欧元。