我有一个简单的函数可以计算小数位数,
例如。 _d(0.01) = 2_d(0.001) = 3等。

我们向系统中添加了数量为0.00000001且功能中断的新硬币。

原因如下:0.00000001.toString() = 1e-8,所以我无法按'.'对其进行拆分,并且无法像以前一样计算第二部分的长度。

所以问题是-如何从'0.00000001'号中获取字符串0.00000001是最简单的方法。

编辑
我的意思不是'0.00000001',我的意思是任何没有小数的小数到小数。一些可以工作的_d(x)函数_d(0.000000000012) = '0.000000000012'等等。 toString()通常对大(但不是太大)的数字起作用。

最佳答案

您是否需要像

function decimalPlaces(num) {
  var match = (''+num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
  if (!match) { return 0; }
  return Math.max(
       0,
       // Number of digits right of decimal point.
       (match[1] ? match[1].length : 0)
       // Adjust for scientific notation.
       - (match[2] ? +match[2] : 0));
}

console.log(decimalPlaces(0.000000001))
这样的东西

09-27 03:58