在MVC Core视图中显示计算

问题描述

我正在尝试在视图中显示百分比计算的结果。 回合和分数来自本地数据库,我想计算记录的回合数,将分数中存储的值相加,然后以百分比形式输出结果。我希望这是有道理的!

当前,我在数据库中存储了一些值,但是我一直得到的结果是零。来自数据库的值似乎没有进入计算方法

非常感谢!

控制器:

list2[high]

型号:

    public ActionResult CalcPercent()
    {
        Practiceviewmodel pvm = new Practiceviewmodel();
        
        var rounds = _context.Practices3.Select(r => r.Round).Count();
        var scores = _context.Practices3.Sum(s => s.score);
        pvm.Percentage = scores / (rounds * 10) * 100;

        return View(pvm);
    }

viewmodel:

public class Practice
{
    [Key]
    public int Id { get; set; }
    public DateTime Date { get; set; }
    public int score { get; set; }
    public double Round { get; set; }

}

查看:

public class Practiceviewmodel
{
    public int Percentage { get; set; }
}

解决方法

错误的公共INT百分比{组; };您必须将其更改为公开的DOUBLE Percentage {组; };

为什么改为var rounds = _context.Practices3.Select(r => r.Round).Count(); 您不使用_context.Practices3.Count();也许你的意思是_context.Practices3.Where(r => r.Round> 0).Count();?

尝试代替pvm.Percentage =得分/(回合* 10)* 100;使用 pvm.Percentage = Math.Round((分数/(回合* 10))* 100,3);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...