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