用十进制格式化数字

ron*_*oc4 6 javascript arrays algorithm math split

我正在尝试转换一个数字数组,使每个数字只有一个非零数字.所以基本上

"7970521.5544"
Run Code Online (Sandbox Code Playgroud)

会给我的

 ["7000000", "900000", "70000", "500", "20", "1", ".5", ".05", ".004", ".0004"]
Run Code Online (Sandbox Code Playgroud)

我试过了:

  var j = "7970521.5544"

  var k =j.replace('.','')

  var result = k.split('')

  for (var i = 0; i < result.length; i++) {
  console.log(parseFloat(Math.round(result[i] * 10000) /10).toFixed(10))
}
Run Code Online (Sandbox Code Playgroud)

任何想法,我不知道从哪里开始?

rv7*_*rv7 4

算法:

  • 使用十进制记数法将数字分成两部分。

  • 运行 for 循环将每个数字与 的相应幂相乘10,例如:

    value = value * Math.pow(10, index); // for digits before decimal
    value = value * Math.pow(10, -1 * index); // for digits after decimal
    
    Run Code Online (Sandbox Code Playgroud)

  • 然后,过滤非零元素并将两个数组连接起来(记得重新反转左侧数组)

    value = value * Math.pow(10, index); // for digits before decimal
    value = value * Math.pow(10, -1 * index); // for digits after decimal
    
    Run Code Online (Sandbox Code Playgroud)