如何将数字四舍五入到下一个50?

时间:2019-05-03 23:00:04

标签: c++ math rounding

我正在调试薪资计算器,我希望将变量四舍五入到最接近的50,但不包括100。

例如,我有变量23324.60,我需要一个等于23350.00的公式。

这是为了满足以下有关AR税金预扣计算的说明。

“由于应税净收入少于50,000,我们将收入提高到$ 50的中间价格$ 23,350.00(中间价格为$ 23,300.00和$ 23,400.00)。”

3 个答案:

答案 0 :(得分:1)

由于四舍五入为50的奇数倍,您可以将其视为向下四舍五入至100,然后再加50。例如,这将使200和299.99都舍入为250

基于此方法的解决方案是:

double rounded_income(double income) {
    return 50.0 + 100.0 * floor(income / 100.0);
}

The floor function位于<cmath>标头中。另一种方法是在整数类型之间来回转换,但会带来许多缺点,包括可读性大大降低。

答案 1 :(得分:-1)

#include <iostream>
#include <math.h>

using namespace std;

int getRoundUp50(float value)
{
    return ceil(value * 0.02) * 50;
}

int main()
{
    cout << getRoundUp50(120.5) << endl;
    cout << getRoundUp50(125.0) << endl;

    return 0;
}

结果:

150
150

答案 2 :(得分:-2)

试图直观展示。不要犹豫,发表评论以供进一步讨论。

<img src="img/icons/cloud.png" id="scroll"></img>