2017-11-21 6 views
6

今私はdecimial(15, 2)のようにbalanceフィールドをMySQLに保存します。そして、PHPで私は操作のためにbcmathライブラリを使用します:PHPとMySQLでお金の値を扱うには?

bccomp($currentBalance, 100.15, 2) - 十分なお金があるかどうかをチェックします。 bcadd($currentBalance, 100) - ユーザバランスを向上させます。

これは正しく動作しているが、BCMathドキュメントは言う:

は、オペランドとして 文字列が原因所望の効果を持っていない可能性があり期待しBCMath関数にfloat型の値を渡しますPHP はfloat値を文字列に変換します。すなわち、文字列は 指数表記(BCMathではサポートされていません)であり、小数点区切り文字はロケール依存です(BCMathは常に の小数点を必要とします)。

私は驚きを避けたいです。お金を扱う正しい方法は何ですか?

答えて

6

整数として。 100.15から10015に変換し、通貨を追跡して、表示するときに適用する小数点以下の桁数を確認します。

関連する問題