Alt description missing in image

Number Utils

import * as numberUtils from '@green-stack/utils/numberUtils'

Collection of utility functions for number manipulation and validation:

        • numberUtils.ts

Random Number Utils

randomInt()

Generates a random integer between a max & min range.

// Generate a random number between 0 and 10
const result = randomInt(10) // => 7
 
// Generate a random number between 5 and 10
const result2 = randomInt(10, 5) // => 8

Rounding Utils

roundTo()

Uses scientific string notation to round numbers to specific decimals. Can pass a specific math rounding function as third arg.

// Round to 2 decimal places using default rounding
roundTo(3.14159, 2) // => 3.14
 
// Round to 2 decimal places using ceiling
roundTo(3.14159, 2, Math.ceil) // => 3.15
 
// Round to 2 decimal places using floor
roundTo(3.14159, 2, Math.floor) // => 3.14

roundUpTo()

Convenience function to round up to specific decimals.

roundUpTo(3.14159, 2) // => 3.15

roundDownTo()

Convenience function to round down to specific decimals.

roundDownTo(3.14159, 2) // => 3.14

Number Validation Utils

hasLeadingZeroes()

Detects leading zeroes in “numbers”.

hasLeadingZeroes('0568') // => true
hasLeadingZeroes('568') // => false
hasLeadingZeroes('0') // => false

isValidNumber()

Checks if a string is a valid number, excluding leading zeroes.

// Valid numbers
isValidNumber('0') // => true
isValidNumber('1') // => true
isValidNumber('250') // => true
isValidNumber('0.123') // => true
isValidNumber(42) // => true
 
// Invalid numbers
isValidNumber('0568') // => false (leading zero)
isValidNumber('abc') // => false (not a number)
isValidNumber('') // => false (empty string)
isValidNumber(null) // => false (null)
isValidNumber(undefined) // => false (undefined)
isValidNumber(NaN) // => false (NaN)

parseIfValidNumber()

Checks if a variable can be parsed as a valid number, and then parses that number.

// Valid numbers
parseIfValidNumber('42') // => 42
parseIfValidNumber('0.123') // => 0.123
parseIfValidNumber(42) // => 42
 
// Invalid numbers
parseIfValidNumber('0568') // => undefined
parseIfValidNumber('abc') // => undefined
parseIfValidNumber('') // => undefined
parseIfValidNumber(null) // => undefined
parseIfValidNumber(undefined) // => undefined
parseIfValidNumber(NaN) // => undefined