3

MSDNには、構築時にのみ設定できる精度と位取りの指定を含む、SqlDecimal データ型の新しいインスタンスを構築する方法に関するドキュメントがあります。

動作する例を次に示しますが、値プロパティを設定する方法がわかりません:

SqlDecimal Test2 = new SqlDecimal(10, 3, false, new int[4] { 2, 1, 0, 0 });  

次のデバッグ ステートメントを出力すると、Precision パラメーターと Scale パラメーターは単純明快ですが、長さ 4 の整数配列から値がどのように決定されるかがわかりません。

? Test.Precision
10
? Test.Scale
3
? Test2.Value
-4294967.298

値を指定するために 4 つの整数をどのように「組み合わせ」ますか? 例も説明もありません。

4

1 に答える 1

3
int[4] { 2, 1, 0, 0 }
=
96-127: 0000 0000 0000 0000 0000 0000 0000 0000   -- 0
64- 95: 0000 0000 0000 0000 0000 0000 0000 0000   -- 0
32- 63: 0000 0000 0000 0000 0000 0000 0000 0001   -- 1
00- 31: 0000 0000 0000 0000 0000 0000 0000 0010   -- 2

この 128 ビット バイナリの値は

2 ^ 32 + 2 ^ 1 = 4294967298

スケールが 3 であるため、小数点以下の桁数が 3 つ左に移動され、4294967.298 になります。
また、SqlDecimal 構造体の 3 番目のパラメーターfalseは負の値になります。

于 2013-04-21T21:36:56.310 に答える