如何在PHP和MySQL中使用货币值?

时间:2017-11-21 10:36:37

标签: php mysql

现在我将balance字段存储在MySQL decimial(15, 2)中。在PHP中,我使用bcmath库进行操作:

bccomp($currentBalance, 100.15, 2) - 检查用户是否有足够的钱。 bcadd($currentBalance, 100) - 用于增加用户余额。

等等。

这是正常的,但BCMath doc说:

  

将float类型的值传递给期望a的BCMath函数   由于PHP的方式,字符串作为操作数可能没有所需的效果   将浮点值转换为字符串,即字符串可能在   指数表示法(BCMath不支持的内容),以及   小数分隔符是locale dependend(而BCMath总是期望a   小数点)。

所以我想避免意外。处理钱的正确方法是什么?

2 个答案:

答案 0 :(得分:5)

作为整数。将100.15转换为10015并跟踪货币,以便了解显示时应用的小数位数。

答案 1 :(得分:0)

关注http://php.net/manual/en/function.bcadd.phphttp://php.net/manual/en/function.bccomp.php

我认为你应该将params作为字符串传递。在你的情况下,也许是bccomp(“$ currentBalance”,“100.15”,2) - >尚未测试。

相关问题