当前位置:  开发笔记 > 编程语言 > 正文

将数字转换为数十,数百,数千

如何解决《将数字转换为数十,数百,数千》经验,为你挑选了1个好方法。

我需要一个给定数字(例如123)的函数,该函数将输出数组[100,20,3]。我已经尝试过类似的事情(从另一个关于SO的问题中借来的):

function separateNumberIntoUnits(n) {
    var arr = [];
    var i = 10;

    while (n > i / 10)
    {
        arr.unshift(n % i - n % (i / 10));
        i *= 10;
    }

    return arr;
}

它适用于除10、100等以外的所有数字。我试图弄清楚发生了什么,但是数学不是我的强项...

如果有更有效的方法可以执行此操作,请随时编写自己的解决方案。



1> CoderPi..:

我认为这是最有效的方法:

function separateNumberIntoUnits(n) {
  if (n == 0) return [0];
  // n = Math.floor(n); // needed for decimal numbers
  var arr = [];
  var i = 1;

  while (n > 0) {
    arr.unshift((n % 10) * i);
    n = Math.floor(n / 10);
    i *= 10
  }

  return arr;
}

document.writeln(separateNumberIntoUnits(1234) + "
") document.writeln(separateNumberIntoUnits(100) + "
") document.writeln(separateNumberIntoUnits(10) + "
") document.writeln(separateNumberIntoUnits(1) + "
") document.writeln(separateNumberIntoUnits(0) + "
")
推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有