浮点变量不存储浮点值

the float variable doesn't store a floating value

本文关键字:存储 浮点变量      更新时间:2023-10-16
struct score
{
  int math;
  int science;
  int english;
  int history;
  int mapeh;
  int tle;
  int filipino;
};
struct info
{
  string firstName;
  string lastName;
  score grades;
  float average;
  int studentnum;
  int rank;
  bool remark;
};

这是我的代码

存储在主题中的值为:

 85 87 89 90 94 92 95
分别

vector<info> stud;
for( int i=0; i<stud.size(); i++)
{
 stud[i].average=  (stud[i].grades.math
                   +stud[i].grades.science
                   +stud[i].grades.english
                   +stud[i].grades.history
                   +stud[i].grades.mapeh
                   +stud[i].grades.tle
                   +stud[i].grades.filipino)/7;
}

存储在stud[i]中的值。平均值应该是90.28,但实际上只有90。

我错过了什么?我试过使用调试器,它显示了我90(没有小数)

使用setprecision只会显示90.00而不是90.28

我也试过改变数据类型的主题浮动,它没有工作。

谢谢。

试着改成:

stud[i].average=  (stud[i].grades.math
                   +stud[i].grades.science
                   +stud[i].grades.english
                   +stud[i].grades.history
                   +stud[i].grades.mapeh
                   +stud[i].grades.tle
                   +stud[i].grades.filipino)/7.0;

(int)/(float)会给你一个(float)的结果