如何在C++; 我正在做C++练习。它要求我打印一个双精度,但我已经尝试了以下代码几次,它没有工作。如何在以下代码中将GPA打印为双精度 #include <iostream> #include <string> using namespace std; class gradeRecord{ private: string studentID; int units,gradepts; public: gradeRecord(string stuID, int unts, int gpts){ studentID = stuID; units = unts; gradepts = gpts; } double gpa(){ int gpa; gpa = double(gradepts)/units; return gpa; } void updateGradeInfo(int unts,int gpts){ units = unts; gradepts = gpts; } void writeGradeInfo(){ cout << "Student:" << studentID << "\t" << "Unit:" << units << "\t" << "GradePts:" << gradepts << "\t" << "GPA:" << gpa(); } }; int main(){ gradeRecord studObj("783-29-4716", 100, 345); studObj.writeGradeInfo(); return 0; } #包括 #包括 使用名称空间std; 班级成绩记录{ 私人: 弦乐学生; 国际单位,成绩点; 公众: 成绩记录(字符串stuID、int unts、int gpts){ studentID=stuID; 单位=unts; 成绩=总成绩; } 双gpa(){ 国际平均成绩; gpa=双倍(分数)/单位; 返回gpa; } void updateGradeInfo(int unts,int gpts){ 单位=unts; 成绩=总成绩; } void writeGradeInfo(){ 库特

如何在C++; 我正在做C++练习。它要求我打印一个双精度,但我已经尝试了以下代码几次,它没有工作。如何在以下代码中将GPA打印为双精度 #include <iostream> #include <string> using namespace std; class gradeRecord{ private: string studentID; int units,gradepts; public: gradeRecord(string stuID, int unts, int gpts){ studentID = stuID; units = unts; gradepts = gpts; } double gpa(){ int gpa; gpa = double(gradepts)/units; return gpa; } void updateGradeInfo(int unts,int gpts){ units = unts; gradepts = gpts; } void writeGradeInfo(){ cout << "Student:" << studentID << "\t" << "Unit:" << units << "\t" << "GradePts:" << gradepts << "\t" << "GPA:" << gpa(); } }; int main(){ gradeRecord studObj("783-29-4716", 100, 345); studObj.writeGradeInfo(); return 0; } #包括 #包括 使用名称空间std; 班级成绩记录{ 私人: 弦乐学生; 国际单位,成绩点; 公众: 成绩记录(字符串stuID、int unts、int gpts){ studentID=stuID; 单位=unts; 成绩=总成绩; } 双gpa(){ 国际平均成绩; gpa=双倍(分数)/单位; 返回gpa; } void updateGradeInfo(int unts,int gpts){ 单位=unts; 成绩=总成绩; } void writeGradeInfo(){ 库特,c++,printing,int,double,C++,Printing,Int,Double,我怎样才能得到双精度积分,而不是GPA中的整数 当你使用 int gpa; gpa = double(gradepts)/units; 您正在截断double 如果要保留至少两个小数点,可以使用: double gpa(){ int gpa = 100*gradepts/units; return gpa/100.0; } 我怎样才能得到双精度积分,而不是GPA中的整数 当你使用 int gpa; gpa = double(gradepts)/

我怎样才能得到双精度积分,而不是GPA中的整数

当你使用

    int gpa;
    gpa = double(gradepts)/units;
您正在截断
double

如果要保留至少两个小数点,可以使用:

double gpa(){
    int gpa = 100*gradepts/units;
    return gpa/100.0;
}
我怎样才能得到双精度积分,而不是GPA中的整数

当你使用

    int gpa;
    gpa = double(gradepts)/units;
您正在截断
double

如果要保留至少两个小数点,可以使用:

double gpa(){
    int gpa = 100*gradepts/units;
    return gpa/100.0;
}

通过包含操纵器,您可以轻松地执行此操作。此操纵器在标题
中声明。并直接在
std::cout
上设置精度,并使用
std::fixed
格式说明符

#include <iomanip>      // std::setprecision

  double gpa(){
  int gpa = 100*gradepts/units;
  std::cout << std::setprecision(3) << gpa/100.0 << '\n'; // you can set your precission to a value you plan to use
  std::cout << std::fixed;
    return gpa/100.0;
}
\include//std::setprecision
双gpa(){
int gpa=100*等级/单位;

std::cout您可以通过包含一个操纵器来轻松实现。此操纵器在标题
中声明。并直接在
std::cout
上设置精度,并使用
std::fixed
格式说明符

#include <iomanip>      // std::setprecision

  double gpa(){
  int gpa = 100*gradepts/units;
  std::cout << std::setprecision(3) << gpa/100.0 << '\n'; // you can set your precission to a value you plan to use
  std::cout << std::fixed;
    return gpa/100.0;
}
\include//std::setprecision
双gpa(){
int gpa=100*等级/单位;

STD::CUT定义<代码> GPA < /C>作为int,将其定义为双替代的选择-使用整数数学(因为它很简单):int GPA=(100×GrEdTsS)/单元;然后STD::CUTH.DUGRAXO.MOEN:如果<代码>(GPA% 100),那么它不会变好。< DifengChen >您可以检查下面的解决方案,看看它是否修复了您的问题。@ BenVoigt -有意……只是为了说明如何容易地修复(并修复(和修复))。(100*gradepts)/units;然后std::cout@DOUGLASO.MOEN:如果
(gpa%100)
只有一个位数,结果就不会那么好了。@DifengChen你可以检查下面的解决方案,看看它是否能解决你的问题。@BenVoigt-故意的…只是为了说明如何容易解决(和解决(和解决))。std::cout