Skip to content

Commit

Permalink
added numberOfDigitsUsingLog method (#1364)
Browse files Browse the repository at this point in the history
* added numberOfDigitsUsingLog method

* added JSDoc comment

---------

Co-authored-by: madhuredra <[email protected]>
  • Loading branch information
dev-madhurendra and madhuredra authored Sep 22, 2023
1 parent 268796b commit 6ad5b9c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
12 changes: 11 additions & 1 deletion Maths/NumberOfDigits.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,14 @@

const numberOfDigit = (n) => Math.abs(n).toString().length

export { numberOfDigit }
/**
* Returns the number of digits of a given integer.
*
* @param {number} n - The integer for which to count digits.
* @returns {number} The number of digits in the integer.
* @see https://math.stackexchange.com/questions/2145480/how-does-the-logarithm-returns-the-number-of-digits-of-a-number
* @author dev-madhurendra
*/
const numberOfDigitsUsingLog = (n) => n === 0 ? 1 : Math.floor(Math.log10(Math.abs(n))) + 1

export { numberOfDigit, numberOfDigitsUsingLog }
11 changes: 10 additions & 1 deletion Maths/test/NumberOfDigits.test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { numberOfDigit } from '../NumberOfDigits'
import { numberOfDigit, numberOfDigitsUsingLog } from '../NumberOfDigits'

describe('NumberOfDigits', () => {
it('should return the correct number of digits for an integer', () => {
Expand All @@ -8,4 +8,13 @@ describe('NumberOfDigits', () => {
it('should return the correct number of digits for a negative number', () => {
expect(numberOfDigit(-2346243)).toBe(7)
})

it.each([
[0, 1],
[123423232, 9],
[-123423232, 9],
[9999, 4]
])('should return the correct number of digits in an integer', (value, expected) => {
expect(numberOfDigitsUsingLog(value)).toBe(expected)
})
})

0 comments on commit 6ad5b9c

Please sign in to comment.