为什么不能在c#对象中执行基本方程
本文关键字:执行 方程 对象 不能 为什么 | 更新日期: 2023-09-27 18:04:38
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 ?
根据需要将属性转换为小数、浮点数或双精度。
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%