2010-11-10 79 views
0

我有这个linq语句。我需要在linq语句中将小数转换为int

var sum = from l in list 
select new 
{ 
    Sum = (l.sum + .005) * 1000 
}; 

这条线将无法正常工作:

Sum = (l.sum + .005) * 1000 

因为总和是一个小数。

我想用System.Data.Objects.SqlClient.SqlFunctions但没有ConvertCast ...

有什么办法,我可以做到这一点?

回答

3

据我所看到的问题是,0.005double而不是l.sumdecimal。注意M

var sum = from l in list 
select new 
{ 
    Sum = (l.sum + .005M) * 1000 
}; 

.005

+0

这工作,什么是“M”的意思 – 2010-11-10 02:24:07

+0

它明确地告诉编译器的值是一个'decimal':如果你改变它这样您的代码应该工作,否则它推断它为“双”。 – Enigmativity 2010-11-10 02:59:18