July 21, 2021
So to be able to round a number in JavaScript I found that this is the best and easy way. This way
I don’t have to convert the Number
to String
to cut some digits and the transform it back to Number
1/**2 * @param value - number - Number to round3 * @param decimals - number - how many digits after the `.`4 * @return number5 */6function round(value, decimals) {7 return Number(Math.round(`${value}e${decimals}`) + 'e-' + decimals);8}
To prove it, here is a test for it
1describe('Number rounding', () => {2 it('should return expected value', () => {3 [4 [2.1234, 2.12, 2],5 [2.125, 2.13, 2],6 [2.11111, 2.11, 2],7 [2.11115, 2.1112, 4],8 [2.123, 2, 0],9 [2.123, NaN, 0],10 ["2.123", 2.12, 2]11 ].forEach(([value, expectedValue, decimals]) => {12 expect(round(value, decimals)).toBe(expectedValue)13 })14 })15})
My name is Bozhidar Dryanovski and I'm a Software Engineer at Clarity
You should follow me on Twitter or Check my work at Github