需要帮助了解如何在C++中使用 round 函数

Need help understanding how to use the round function in C++

本文关键字:round 函数 C++ 帮助 了解      更新时间:2023-10-16
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main () {
//initializing my variables
double mealcost;
float tax_percent, tip_percent, tax_total, tip_total, overall_total;
cout << "What is the cost of your meal?" << endl;
cin >> mealcost;
cout << "What percent tip would you like to leave?" << endl;
cin >> tip_percent;
cout << "What percent are you taxed?" << endl;
cin >> tax_percent;
tax_total = mealcost * (tax_percent/100);
tip_total = mealcost * (tip_percent/100);
overall_total = mealcost + tax_total + tip_total;

/*trying to take the overall total from the formula above and round it
to the nearest whole integer*/

round (overall_total);
cout << "What is the total cost of my meal? " << overall_total << endl;

return 0;
}

每当我运行代码时,它都会正确编译并给我正确的总总数,但 round 函数似乎不起作用。我输入12美元的餐费,8%的小费和20%的税。正确答案是 15.36 美元,但我想将其四舍五入为 15 美元。任何帮助将不胜感激。

您必须将

round()函数的返回值分配给 overall_total ,如下所示:

overall_total = round(overall_total);

上面的行应替换round (overall_total);

C++中的某些函数对函数的参数进行引用(通过引用传递),例如 std::sort() ,以便您只需std::sort(v.begin(), v.end())并向量v进行排序,而无需分配返回值。(从技术上讲,std::sort接受与指针有相似之处的迭代器,但它们基本上具有相同的结果。

但是,round()函数实际上获取参数的副本(按值传递)并返回一个新值 - 它不会直接"重新分配"参数以获得舍入值。因此,您必须将函数的返回值分配给变量(在本例中为同一变量才能"重新分配")。

您可以在此处了解有关差异的更多信息:

引用传递与按值传递有什么区别?