将SqlDecimal转换为Decimal

时间:2011-07-05 13:08:12

标签: sql clr decimal

问题是SqlDecimal数据类型包含比CLR本机的Decimal数据类型更多的位。那么如何以最实际的方式在两者之间进行映射。这个效果不好:

SqlDecimal x = ...
decimal z = x.value; // can overflow

要传递更多数字,可以删除尾随零。但是如果你接受转换给你的精度损失,你会发现有一个函数可以进行这种有损转换。

有吗?或者这里最好的做法是什么?

我已经创建了一个函数,它既可以裁剪也可以删除尾随的零来进行转换,但是如果存在这样的话,我宁愿使用标准的.NET BCL函数。

1 个答案:

答案 0 :(得分:1)

使用SqlDecimal.Round,其精度与.NET decimal类型匹配。