如何构造指定精度和比例的SqlDecimal数据类型的实例

本文关键字:SqlDecimal 数据类型 实例 何构造 精度 | 更新日期: 2023-09-27 18:10:19

MSDN有关于如何构造SqlDecimal数据类型的新实例的文档,其中包括指定精度和比例,这些只能在构造时设置。

下面是一个可以工作的例子,但是我不明白如何设置value属性:

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个整数如何"组合"来指定值?没有例子也没有解释

如何构造指定精度和比例的SqlDecimal数据类型的实例

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结构的第三个参数是false,使其为负值。