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 个整数如何“组合”以指定值?没有例子,也没有解释。

最佳答案

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 使其成为负值。

关于c# - 如何构造指定精度和小数位数的 Sql Decimal 数据类型的实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16136336/

10-13 07:56