質問: MySQL Decimalデータ型をPHPでどのように使うべきですか? うまくいけば、ただの簡単な質問です。私は自分のデータベースに `DECIMAL` という列を持っています。値は非常に小さな小数です。すべての行の値を合計すると1になります。 今私はPHPアプリケーションでこの値を使用して表示し、計算を実行してデータベースに保存し直したいと思います。 phpは `integer` 型と `float` 型しか持たないので、計算や表示の正確さを失わないようにphpでその値を使用する最良の方法は何ですか? * 値を文字列として保存し、BC計算を計算に使用します * 数字を `float` としてキャスト - phpの浮動小数点数は正確です(OSによって異なる) * 指数を記憶する関数を使用して値を整数に変換する * 他の何か? ありがとう
回答: `float` は計算の精度を損なわず、 `number_format` 出力... **Notes:** It's really depend on your needs and how you want your output handled, if you wish just cutting the mantissa after second number or do some kind of rounding. たとえば `2.10/1.10` のようなスケール2のBC Mathを使用すると、使用中に `1.90` が生成されます `number_format(2.10/1.10,2) `1.91` ( `SELECT CAST(DECIMAL(10,2)として2.10/1.10のように)/code>)`` ``**Update:**. As stated in comments there may be cases you will lose precision in calculations. It will be probably better to do arbitrary-precision calculations in MySQL itself so you can be sure nothing is loosed during math operations.``