平均Linq関数の結果を丸めたいですか?ラウンド平均Linq関数C#
public IEnumerable<GetLocationsAverageDTO> GetLocationsAverageByCompanyId(int id)
{
try
{
var baseQuery = _dbContext.Answers.AsNoTracking()
.Where(p => p.Location.Company.Id == id
&& p.Question.Type != QuestionType.Text)
.GroupBy(g => new { Location = g.Location.Name })
.Select(x =>
new GetLocationsAverageDTO
{
LocationName = x.Key.Location,
Average = x.Average(f => f.Numeric)
})
.OrderBy(x => x.LocationName);
var dto = baseQuery.ToList();
return dto;
}
catch (Exception error)
{
_logger.Error("[Error in SurveyService.GetLocationsAverageByCompanyId - id: " + id + " - Error: " + error + "]");
return null;
}
}
何か
Average = x.Average(f => f.Numeric, 2) // result: 45,21
にこれはどこから来るのかに関係なく、所望の精度に数値を丸めないで行うことが、より多くのLINQのとはあまりありません。 –
'Math.Round(x.Average(f => f.Numeric)、2);'を使用できません。 – Habib
通常、テキストに書式設定するのではなく、メモリ内の二重小数点を '丸める'要求は間違っています。あなたはこの正確な時点でそれを必要としていますか? –