【问题标题】:How do I split a single number from a big number?如何从大数字中拆分单个数字?
【发布时间】:2016-04-17 22:08:19
【问题描述】:

我正在尝试在 AngularJS 中创建一个自定义过滤器,它将数字过滤为罗马数字,例如 10 等于 X。但是这个过滤器无法读取大于 10 的数字,我正在考虑一种方法来拆分一个大数成几个单数,例如 11 = 10 + 1

app.filter("myFilter", function () {
return function (myNum) {
    var formatedNumber = "";
    switch (myNum) {
    case 1:
        formatedNumber = "I";
        break;
    case 2:
        formatedNumber = "II";
        break;
    case 3:
        formatedNumber = "III";
        break;
    case 4:
        formatedNumber = "IV";
        break;
    case 5:
        formatedNumber = "V";
        break;
    case 6:
        formatedNumber = "VI";
        break;
    case 7:
        formatedNumber = "VII";
        break;
    case 8:
        formatedNumber = "VIII";
        break;
    case 9:
        formatedNumber = "IX";
        break;
    case 10:
        formatedNumber = "X";
        break;
    case myNum > 10:
        formatedNumber = "";
        break;
    }
    return formatedNumber;
};
});

【问题讨论】:

  • 您想要处理的最大数字是多少?此外,如果你想为你破坏答案,你为什么不只是谷歌算法?之前已经做过很多次了。
  • 你是对的。在我用谷歌搜索算法后,它变得容易多了。

标签: angularjs filter


【解决方案1】:

除以你的最大数。商将是您使用的最大数字的多少,余数将是其他数字。在您的示例中,11 / 10 = 1.1。所以你知道你需要 1 X 和 1 I。再举一个例子,让我们使用 379。379 / 10 = 37.9。这意味着您将拥有 37 个 X 和一个 IX。

【讨论】:

  • 使用模数% 求除法余数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
相关资源
最近更新 更多