需要帮助了解如何在C++中使用 round 函数
Need help understanding how to use the round function in C++
#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()
函数实际上获取参数的副本(按值传递)并返回一个新值 - 它不会直接"重新分配"参数以获得舍入值。因此,您必须将函数的返回值分配给变量(在本例中为同一变量才能"重新分配")。
您可以在此处了解有关差异的更多信息:
按引用传递与按值传递有什么区别?
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- 函数调用中参数的顺序重要吗
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用不带参数的函数访问结构元素
- 代码在main()中运行,但在函数中出现错误
- 需要帮助了解如何在C++中使用 round 函数
- 在Visual Studio 2012中,round(),rint()(等等)C++函数在哪里
- 内置函数中的Round()不适用于Turbo C++v4.0
- 在调试c++程序期间调用round()函数时,GDB打印任意值