(2,2) で DECIMAL を使用しようとしましたが、これを使用できません。
7.50 や 10.50 などの数値を格納したいだけです。ただし、小数点以下の両方の数値を保持する必要がありますが、データベースを更新すると、値が 0.99 にリセットされます。助言がありますか?
(2,2) で DECIMAL を使用しようとしましたが、これを使用できません。
7.50 や 10.50 などの数値を格納したいだけです。ただし、小数点以下の両方の数値を保持する必要がありますが、データベースを更新すると、値が 0.99 にリセットされます。助言がありますか?
DECIMAL
宣言の最初のパラメーターは合計桁数です。おそらく使用したいでしょうDECIMAL (4, 2)
。これにより、小数点の前に最大 2 桁、小数点以下に最大 2 桁まで使用できます。
ドキュメント: https://dev.mysql.com/doc/refman/5.7/en/precision-math-decimal-characteristics.html
構文は DECIMAL(M,D) です。
M - 全長
D - 小数点以下の桁数
http://dev.mysql.com/doc/refman/5.6/en/fixed-point-types.html
DECIMAL 列の宣言構文は DECIMAL(M,D) です。MySQL 5.6 の引数の値の範囲は次のとおりです。
M は最大桁数 (精度) です。範囲は 1 から 65 です (MySQL の古いバージョンでは 1 から 254 の範囲が許可されていました)。
D は、小数点 (スケール) の右側の桁数です。範囲は 0 ~ 30 で、M 以下でなければなりません。
CREATE TABLE IF NOT EXISTS `table_name` (`id` int(11) NOT NULL AUTO_INCREMENT,`cost` DECIMAL( 10, 2 ) NOT NULL);
これにより、コスト列は小数点以下 8 桁、小数点以下 2 桁の合計 10 桁になります。
フィールドを INT から FLOAT に変更します