1

データ型がdecimal設定された列があります..

`cost` decimal(4,2) NOT NULL DEFAULT '0.00',

しかし、価格を入力すると、たとえば 100.00 と表示され、次にそれを見ると と表示されます99.99

どうしてこれなの?4,2小数点の前に4文字、小数点以下に2文字を許可すると思いましたか?

4

3 に答える 3

1

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 桁です。

于 2012-12-18T08:36:27.947 に答える
1

4 は精度 (合計桁数)、2 はスケール (小数点以下の桁数) です。

あなたの場合、6,2が必要です。

于 2012-12-18T08:34:27.890 に答える
1

列は、小数点の左側に最大で M - D 桁を許可DECIMAL(M,D)ます。

Mは最大桁数 (精度) です。

于 2012-12-18T08:34:37.573 に答える