在 C++ 中将数字四舍五入到下一个 0.05 或整数

问题描述 投票:0回答:1

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

这是我尝试调整以返回正确舍入的相关代码:

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

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

请注意,我尝试计算精度但没有成功。

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

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

c++ math rounding digits
1个回答
0
投票

也许最简单的方法:

  1. 乘以 100(得到想要的值,不带小数),
  2. 除以 5(因为这是你想要的精度),
  3. 将此数字四舍五入。现在用四舍五入的数字反转该过程:
  4. 乘以 5 并
  5. 除以 100(得到保留两位小数的值)。

请注意,您可以缩短程序:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.