JavaScript 中数字的小数位计数
假设有一个数字,它的小数点后有几位数字,任务是找到小数点后数字的个数。
输入输出场景
让我们来看一下输入输出场景,其中有一个浮点数,它的小数点后有一些数字。
Input = 45.36346323 Output = 8
正如我们在上面的代码片段中看到的,浮点数的小数点后有 8 位数字。
为了完成上述任务,我们使用了三种方法。即 `isInteger()`、`toString()` 和 `split()` 方法。让我们一一来看——
Number.isInteger() 方法
JavaScript 中的 **Number.isInteger()** 方法检查传递的值是否是整数。如果传递的值是整数,则返回 true;如果不是,则返回 false。
语法
以下是 JavaScript 中 Number.isInteger() 方法的语法:
Number.isInteger(val)
其中,`val` 参数是要测试的值。此方法的返回类型是布尔值。
toString() 方法
JavaScript 中的 **toString()** 方法将数字作为字符串返回。返回类型将是字符串。
语法
以下是 JavaScript 中 toString() 方法的语法:
number.toString()
split() 方法
JavaScript 中的 **split()** 方法将字符串分割成子字符串数组。它将返回一个新数组,并且此方法不会更改或修改原始字符串。
语法
以下是 JavaScript 中 split() 方法的语法:
string.split(separator, limit)
其中:
`separator` 参数是一个模式,描述了每次分割应该发生的位置。可以使用字符串或正则表达式进行分割。
`limit` 参数是一个整数,它限制分割的次数。
现在,我们将在下面的示例中使用以上三种方法来获取小数点后数字的个数。
示例
在下面的示例中,我们声明了一个浮点数。**Number.isInteger()** 方法将检查传递的数字是否是整数。
因为它是一个浮点数,**toString()** 方法会将数字转换为字符串,**split()** 方法会将字符串分割成子字符串数组(小数点前的数字和小数点后的数字),而 **length** 属性将获取小数点后数字的长度。
<!DOCTYPE html> <html> <head> <title>Decimal count of a number </title> <button onClick = "func()">Click!</button> <p id = "para1"></p> </head> <body> <script> const numb = 45.36346323 document.getElementById("para1").innerHTML = numb; function func(){ function count(numb) { if (Number.isInteger(numb)) { return 0; } else { return numb.toString().split('.')[1].length; } } document.getElementById("para1").innerHTML = "Decimal count: " + count(numb); } </script> </body> </html>
正如我们在输出中看到的,我们打印了小数点后数字的个数。
使用 includes() 方法
此方法用于验证当前字符串是否包含给定的子字符串。如果搜索值包含指定的字符串,则此方法返回 true;否则返回 false。此方法区分大小写。
语法
以下是 JavaScript 中 includes() 方法的语法:
string.includes(searchValue, start)
其中:
**searchValue** 是要搜索的值。
**start** 是开始搜索 **searchValue** 的位置。
我们在计算小数点后数字的过程中也使用了上述方法。
示例
在下面的示例中,我们将数字转换为字符串,并检查字符串中是否包含小数点 (.)。然后我们将字符串分割成两个子数组,length 属性计算包含小数点后数字的子数组的长度。
<!DOCTYPE html> <html> <head> <title>Decimal count of a number </title> <button Onclick = "btn()"> Click to get the count </button> <p id = "para1"></p> <p id = "para2"></p> </head> <body> <script> function btn(){ function count(num) { const converted = num.toString(); if (converted.includes('.')) { return converted.split('.')[1].length; }; return 0; } document.getElementById("para1").innerHTML = "Decimal count of 56.234235 is: " + count(56.234235); document.getElementById("para2").innerHTML = "Decimal count of 32856456 is: " + count(32856456); } </script> </body> </html>
正如我们在输出中看到的,我们打印了小数点后数字的个数。