小编Pra*_*ukh的帖子

使用可用面额组的四舍五入金额

这不是基于单个值向上或向下舍入的常规舍入。我想要一个函数,将金额作为整数传递,将面额作为整数数组传递。该函数应该返回给我的是通过传递的面额数组可以实现的最接近的可能整数值。向上舍入还是向下舍入将再次作为参数发送。

代码:

var amount = 61; // for. e.g.
int[] denoms = [20, 50]; // for. e.g.
bool roundUp = true;
amount = RoundAmount(amount, denoms, roundUp);
Run Code Online (Sandbox Code Playgroud)

预期结果 :

RoundAmount函数应该返回我通过的面值所能达到的最接近的金额。

  1. 如果roundUp = true,返回值应该是70,因为70 = 20+50 金额70可以通过一张 20 元和一张 50 元来实现。
  2. 如果roundUp = false,应该已经返回了60,因为60 = 20+20+20金额60可以通过3个20的音符来实现

到目前为止我得到了什么:

我只能达到可以根据单个整数(而不是整数数组)向上或向下舍入金额的程度

public int RoundAmount(int amount, int value, bool roundUp)
{
   if (roundUp)
      amount = amount - (amount % value) …
Run Code Online (Sandbox Code Playgroud)

c# algorithm

4
推荐指数
1
解决办法
848
查看次数

标签 统计

algorithm ×1

c# ×1