在linq语句中将int转换为decimal

时间:2013-07-16 08:15:24

标签: linq

我需要得到在linq语句中除以两个整数的十进制结果,如示例所示:

from error in errorslist
select new
{
    res = error.count1 / error.count2
} 

它将结果返回为整数,我无法使用Convert.ToDecimal函数

2 个答案:

答案 0 :(得分:4)

整数除法产生int,其中小数部分被截断,因为它不能存储在结果类型(int)中。因此,两者中至少有一个必须是浮点类型。

from error in errorslist
select new
{
    res = error.count1 / (double) error.count2
} 

from error in errorslist
select new
{
    res = error.count1 / (1.0 * error.count2)
} 

更新如果您希望结果类型为decimal(因为问题的标题):

from error in errorslist
select new
{
    res = error.count1 / (decimal) error.count2
} 

答案 1 :(得分:0)

您需要将至少一个值转换为decimal

from error in errorslist
select new
{
    res = error.count1 / (error.count2 + 0m)
}