0

对不起,如果我的标题含糊不清,我正在学习 c++,我们正在制作一个计算货币的结帐/库存系统,如果有任何变化,例如 1.69,它应该自动四舍五入到 1.70,或者如果它是 1.63,它会四舍五入到1.65,避免以美分换钱。

这是我试图适应以返回正确舍入的相关代码:

if (!taxed()) {
                    cout << price() * quantity();

                }
                else {
                    cout <<  (price() * quantity()) * 1.13;
                }

请注意,我尝试了 cout 精度但没有成功。

我设法输出到 1.7,但是如何将其更改为 1.70?

尝试更改精度,但这改变了我的答案,也将其设置为 double 等并没有帮助。

4

1 回答 1

0

也许最简单的方法:

  1. 乘以 100(得到不带小数的所需值),
  2. 除以 5(因为这是您想要的精度),
  3. 四舍五入这个数字。现在用四舍五入的数字反转过程:
  4. 乘以 5 和
  5. 除以 100(得到两位小数的值)。

请注意,您可以缩短该过程:

  1. 乘以 20(前面的步骤 1 和 2 相结合),
  2. 将数字四舍五入,
  3. 乘以 0.05。

主要是除以所需的精度(5)然后四舍五入。

于 2015-12-09T09:00:04.630 回答