.filter
每当我运行我的代码时,它都能正确编译并提供正确的总体总数,但是round函数似乎无法正常工作。我总共输入了12美元的餐费,8%的小费和20%的税。正确答案是$ 15.36,但我想将其四舍五入到$ 15。任何帮助将不胜感激。
答案 0 :(得分:4)
您必须将round()
函数的返回值分配给overall_total
,如下所示:
overall_total = round(overall_total);
以上行应替换round (overall_total);
。
C ++中的某些函数对函数的参数进行引用(按引用传递),例如std::sort()
,因此您只需对std::sort(v.begin(), v.end())
和向量v
进行排序,而不必分配返回值。 (从技术上讲,std::sort
引入了与指针相似的迭代器,但它们基本上具有相同的结果。)
但是,round()
函数实际上取参数并返回一个新的值的拷贝(通过噪声值) - 它不直接地“重新分配”的参数,这样,圆形的值。因此,必须将函数的返回值分配给变量(或在这种情况下,为了“重新分配”而使用相同的变量)。
您可以在此处了解有关区别的更多信息:
What's the difference between passing by reference vs. passing by value?