【发布时间】:2011-04-18 16:24:59
【问题描述】:
我需要在 PHP 中添加、乘以和比较货币值,并且需要确保它精确到一美分。
一种方法是将所有内容存储在浮点数中,在每次操作之前和之后使用round,在比较相等时使用mind machine epsilon。相当麻烦恕我直言。
另一种方法是将整个数据存储为整数数据类型中的美分,并且记得在我使用数据库(mysql,我使用十进制数据类型)的任何时候来回转换。不优雅,还有很多错误陷阱,恕我直言。
另一种方法是发明我自己的“数据类型”,将所有值存储在字符串中(“34.12”)并创建我自己的数学替换函数。这些函数将在内部将值转换为整数,进行计算并再次将结果输出为字符串。非常复杂,恕我直言。
我的问题:在 PHP 中处理货币值的最佳实践是什么? 谢谢!
【问题讨论】: