1.0.1 • Published 1 month ago

@safelytyped/math-rounding v1.0.1

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
1 month ago

Math Rounding Utilities for TypeScript

Introduction

This TypeScript library adds missing math rounding utilities, in a type-safe manner.

Quick Start

# 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.

Exported Functions

roundDown()

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);

roundUp()

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);

roundTo()

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
);

Why Another Math Rounding Package?

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);

Documentation

Here's a link to all the documentation about this project.

Admin Paperwork

For Contributors

Credits

Follow us on Twitter!

1.0.1

1 month ago