2010-11-10 77 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