首页 > 解决方案 > 获取最接近整数的平均值

问题描述

我有两张桌子

视频

ID、视频名称、视频网址

收视率

Id、VideoId、CommentDesc、Rating(十进制类型

多个用户可以多次提交 1 个视频的评分。每个人的评分都存储在评分栏中,可以提交包括一半的评分,即 1.5、2.5

在我的网页上,我有一个下拉菜单,用户可以在其中选择平均评分(值是 1-5),并将显示所有具有该平均评分的视频。

我可以使用 Linq to SQL 获得平均值

return myDataCtx.Ratings.Average(i => i.Rating));

但是,如果用户从下拉列表中选择 1-5 之间的整数,我如何将评分列四舍五入到最接近的整数?

标签: c#asp.netlinq-to-sql

解决方案


你可以像这样得到最近的号码。

decimal d = 1.75M;
var ceiling = Math.Ceiling(d);
var floor = Math.Floor(d);

var closest = ceiling - d < d - floor ? ceiling : floor;

x.5应该分开照顾。

你也可以使用Math.Round()


推荐阅读