我需要得到在linq语句中除以两个整数的十进制结果,如示例所示:
from error in errorslist
select new
{
res = error.count1 / error.count2
}
它将结果返回为整数,我无法使用Convert.ToDecimal
函数
答案 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)
}