使用 Javascript 获取小数位数

Oct*_*cat 8 javascript

如何使用 Javascript 计算实数的小数位数(不是数字)?

function countDecimals(number) {

}
Run Code Online (Sandbox Code Playgroud)

例如,给定 245.395,它应该返回 3。

Ale*_*tov 9

像这样:

var val = 37.435345;
var countDecimals = function(value) {
  let text = value.toString()
  // verify if number 0.000005 is represented as "5e-6"
  if (text.indexOf('e-') > -1) {
    let [base, trail] = text.split('e-');
    let deg = parseInt(trail, 10);
    return deg;
  }
  // count decimals for number in representation like "0.123456"
  if (Math.floor(value) !== value) {
    return value.toString().split(".")[1].length || 0;
  }
  return 0;
}
countDecimals(val);
Run Code Online (Sandbox Code Playgroud)

  • 例如,这不适用于“value = 0.00000005”...因为“value.toString()”将返回“5e-8” (2认同)
  • @Mustafa 是的,你是对的。我已根据您的建议更新了我的答案。 (2认同)

Gos*_*ten 5

主要思想是将数字转换为字符串并获取“.”的索引。

var x = 13.251256;
var text = x.toString();
var index = text.indexOf(".");
alert(text.length - index - 1);
Run Code Online (Sandbox Code Playgroud)