データ型がdecimal
設定された列があります..
`cost` decimal(4,2) NOT NULL DEFAULT '0.00',
しかし、価格を入力すると、たとえば 100.00 と表示され、次にそれを見ると と表示されます99.99
。
どうしてこれなの?4,2
小数点の前に4文字、小数点以下に2文字を許可すると思いましたか?
データ型がdecimal
設定された列があります..
`cost` decimal(4,2) NOT NULL DEFAULT '0.00',
しかし、価格を入力すると、たとえば 100.00 と表示され、次にそれを見ると と表示されます99.99
。
どうしてこれなの?4,2
小数点の前に4文字、小数点以下に2文字を許可すると思いましたか?
decimal [ (p[ ,s] )] および numeric[ (p[ ,s] )] 固定の精度と位取りの数値。最大精度が使用される場合、有効な値は - 10^38 +1 から 10^38 - 1 です。10 進数の ISO シノニムは dec および dec(p, s) です。numeric は機能的に decimal と同等です。
結論: 6.2 にする必要があります。
6 は合計 6 桁、2 はポイントの後に 2 桁です。
4 は精度 (合計桁数)、2 はスケール (小数点以下の桁数) です。
あなたの場合、6,2が必要です。
列は、小数点の左側に最大で M - D 桁を許可しDECIMAL(M,D)
ます。
Mは最大桁数 (精度) です。