Мне нужно преобразовать десятичную дробь в int в операторе linq - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть это заявление linq.

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

эта строка не будет работать:

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

потому что сумма десятичная.

Я хотел бы использовать System.Data.Objects.SqlClient.SqlFunctions, но нет Convert или Cast ...

Есть ли способ, которым я могу это сделать?

1 Ответ

3 голосов
/ 10 ноября 2010

Насколько я понимаю, проблема в том, что 0.005 - это double, а не то, что l.sum - это decimal.Ваш код должен работать, если вы измените его следующим образом:

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

Обратите внимание на M после .005

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...