在JavaScript中计算小数点后的数字

时间:2018-06-16 17:59:49

标签: javascript

我在JavaScript中遇到问题。是否可以检查小数点后面有多少个数字?我尝试使用a.toString().split(".")[1])来做,但如果数字中没有小数点,则会出错。如果我希望系统在没有小数点的情况下什么都不做,我该怎么办?

5 个答案:

答案 0 :(得分:3)

你走在正确的轨道上。您还可以.includes('.')测试它是否包含小数以及.length以返回小数部分的长度。

function decimalCount (number) {
  // Convert to String
  const numberAsString = number.toString();
  // String Contains Decimal
  if (numberAsString.includes('.')) {
    return numberAsString.split('.')[1].length;
  }
  // String Does Not Contain Decimal
  return 0;
}

console.log(decimalCount(1.123456789)) // 9
console.log(decimalCount(123456789))   // 0

答案 1 :(得分:2)

转换为字符串,拆分为“。”,然后当没有“。”拆分时,假设它是空字符串''(你缺少的部分),然后得到字符串的长度:



function numDigitsAfterDecimal(x) {
  var afterDecimalStr = x.toString().split('.')[1] || ''
  return afterDecimalStr.length
}

console.log(numDigitsAfterDecimal(1.23456))
console.log(numDigitsAfterDecimal(0))




答案 2 :(得分:0)

您可以检查是否没有点可用,然后返回零,否则返回长度和索引的增量进行调整。



function getDigits(v) {
    var s = v.toString(),
        i = s.indexOf('.') + 1;
    return i && s.length - i;
}

console.log(getDigits(0));
console.log(getDigits(0.002));
console.log(getDigits(7.654321));
console.log(getDigits(1234567890.654321));




答案 3 :(得分:0)

您需要的条件是:

number.split('.')[1].length

检查点后面是否有数字,将数字与小数部分分开。

我不确定你是否能够在号码上使用split。如果没有,请将其解析为字符串。

答案 4 :(得分:-1)

首先需要将十进制数转换为字符串,然后获取小数点后的字符数

var a = 10.4578;
var str = a.toString();
if(str){
   var val = str.split('.');
   if(val && val.length == 2){
     alert('Length of number after decimal point is ', val[1].length);
   } else {
    alert('Not a decimal number');
   }
}

输出为4