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>
正如我們在輸出中看到的,我們列印了小數點後數字的個數。