This TypeScript library adds missing math rounding utilities, in a type-safe manner.
# run this from your Terminal
npm install @safelytyped/math-rounding
// add this import to your Typescript code
import { roundDown } from "@safelytyped/math-rounding";
VS Code users: once you've added a single import anywhere in your project, you'll then be able to auto-import anything else that this library exports.
Use roundDown()
to round a number down to the precision you require.
import { roundDown } from "@safelytyped/math-rounding";
// res == 1.99
const res = roundDown(2, 1.9999);
Use roundUp()
to round a number up to the precision you require.
import { roundUp } from "@safelytyped/math-rounding";
// res == 2
const res = roundUp(2, 1.99999);
Use roundTo()
if you want to inject your own rounding function.
import { roundTo } from "@safelytyped/math-rounding";
// roundedDownRes == 1.99
const roundedDownRes = roundDown(
Math.trunc,
2,
1.99999
);
// roundedUpRes == 2
const roundedDownRes = roundDown(
Math.ceil,
2,
1.99999
);
I found myself needing rounding functions in CSS Color that Javascript's stock Math
module doesn't provide. I've published them as a separate package so that I can reuse them in other packages in the future.
But this isn't the world's first package to add missing Math
rounding functions to Javascript / Typescript ... so why have I built it?
The main reason is that it follows the SafelyTyped philosophy of function parameter order:
- required modifier params come first,
- then the main input value
I find that this makes partial functions a little more readable, such as:
import { roundDown } from "@safelytyped/ts-math-rounding";
const roundDown2 = (x: number) => roundDown(2, x);
Here's a link to all the documentation about this project.
Follow us on Twitter!