ViewBag.WinLossRatio =
new WinLossRatioVM
{
Wins = ctx.Games.Where(p => p.IsWin == true).Count(),
Total = ctx.Games.Count(),
Percent = ctx.Games.Where(p => p.IsWin == true).Count() / ctx.Games.Count() * 100
};
在上面的代码中,我只是尝试获得胜利的比例与所玩的游戏总数。前两个属性,Wins和Total分别返回5和11。最后一个属性仅返回零。该模型简单如下:
public class WinLossRatioVM
{
public int Wins { get; set; }
public int Total { get; set; }
public int Percent { get; set; }
}
为什么百分比会返回零?
答案 0 :(得分:2)
将属性转换为小数,浮点数或双精度,因为您需要百分比计算的小数位数。
答案 1 :(得分:1)
Percent = ctx.Games.Where(p => p.IsWin == true).Count() / ctx.Games.Count() * 100
使用整数除法,您需要向浮点数转换至少一个参数,以便使用浮点除法:
Percent = Convert.ToInt32(ctx.Games.Where(p => p.IsWin == true).Count() / (float)(ctx.Games.Count()) * 100);
整数除法将截断任何小数分量,在百分比计算中保留0< 100%