UNPKG

@eluvio/elv-js-helpers

Version:

A collection of Javascript helper functions used by several Eluvio libraries.

27 lines (22 loc) 709 B
'use strict' const curry = require('../Functional/curry') // roundToPrecision :: Number -> Number -> Number // Rounds a value to a certain number of significant digits const roundToPrecision = curry( (sigFigs, value) => { // Unsafe version, does not protect against value <= 0 const _roundPosNumToPrec = (sigFigs, value) => { const factor = 10 ** (1 + Math.trunc(Math.log10(value)) - sigFigs) return Math.round(value / factor) * factor } switch (Math.sign(value)) { case 1: return _roundPosNumToPrec(sigFigs, value) case -1: return -_roundPosNumToPrec(sigFigs, -value) default: return 0 } } ) module.exports = roundToPrecision