私はmysqlテーブルに金額を浮動小数点として保存しています。mysqlが浮動小数点値を丸めるのを止める方法はありますか?
問題は、mysqlは数字を上下に丸めています。
ex。 12345.68は12345.7に丸められます
私はこれをどうやって止めることができますか使用しなければならないデータタイプはありますか?
元の値を小数点以下2桁以内に保持したいと考えています。
私はmysqlテーブルに金額を浮動小数点として保存しています。mysqlが浮動小数点値を丸めるのを止める方法はありますか?
問題は、mysqlは数字を上下に丸めています。
ex。 12345.68は12345.7に丸められます
私はこれをどうやって止めることができますか使用しなければならないデータタイプはありますか?
元の値を小数点以下2桁以内に保持したいと考えています。
変更への現在の設定から該当する列の定義:以前のスニペットで
FLOAT(9,2)
2
は、小数点以下2桁までの値を維持するためにMySQLを指示します。現時点では1
に設定されている可能性があります。観察された行動。 9
をより適切な値に変更してください。
詳細はfloats and precisionです。
Related answer, which advises on not using float
s, but instead decimal
。
FLOAT
タイプを使用しないでください。代わりにDECIMAL
を使用してください。 Floatは10進数を2進数に変換し、丸め(精度の低下)をもたらします。 Decimalは数値を小数として格納します。変換はしません。
この場合、列をDECIMAL(12,2)
と定義しても問題ありません。予想される数字のサイズに基づいて幅(最初の数字)を選択します。この例では、予想されるサイズは12桁です(小数点以下の桁を含む)。