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个整数如何“组合”来指定值?没有例子也没有解释。
答案 0 :(得分: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 constructure的第三个参数为false
,使其成为负值。