1

である列があり、このように返すようvarcharに変換しようとしていますが、代わりにこのように返しますnumeric(8,2)1.001.000

例:

 Select 
   Convert(numeric(8,2),WholesaleCost) * 2.2)
 FROM Table

これは戻ります50.900

スケールを小さくすると、希望どおりの結果が返されるように見えnumeric(8,1)ます。numeric(8,2)50.90

なぜこれを行うのか誰かが知っていますか?結果にスケール桁を追加するのはなぜですか?50.9私がするときそれはあるべきではありませnumeric(8,1)んか?

4

1 に答える 1

1

あなたがやっていnumeric(8,2) * numeric(2,1)て、結果のデータ型はnumeric(11,3)

numeric2つの数値を乗算するとe1 * e2、結果は、精度、スケール、および長さに従って精度p1 + p2 + 1 とスケールになります。s1 + s2

于 2012-10-06T14:55:17.197 に答える