hypermath
v0.0.8
Published
Tired of writing a metric ton of code just to have simple multiplication not return incorrect results? Me too...
Downloads
10
Maintainers
Readme
HyperMath
HyperMath is a simple JavaScript/TypeScript library designed to address common pitfalls in JavaScript math operations. It provides a set of static methods for basic arithmetic operations with improved precision and input handling.
Installation
npm install hypermath
Usage
import { HyperMath } from 'hypermath';
// Multiplication
console.log(HyperMath.multiply(0.1, 0.2)); // 0.02 (instead of 0.020000000000000004)
// Addition
console.log(HyperMath.add(0.1, 0.2)); // 0.3 (instead of 0.30000000000000004)
// Division
console.log(HyperMath.divide(0.3, 0.1)); // 3 (instead of 2.9999999999999996)
// Subtraction
console.log(HyperMath.subtract(0.3, 0.1)); // 0.2 (instead of 0.19999999999999998)
Features
- Handles both number and string inputs
- Attempts to maintain precision up to 2 significant digits
- Provides static methods for multiplication, addition, and division
- Throws an error for invalid string inputs
API
HyperMath.multiply(firstValue: number | string, secondValue: number | string): number
Multiplies two numbers with improved precision.
HyperMath.add(firstValue: number | string, secondValue: number | string): number
Adds two numbers with improved precision.
HyperMath.divide(firstValue: number | string, secondValue: number | string): number
Divides two numbers with improved precision.
HyperMath.subtract(firstValue: number | string, secondValue: number | string): number
Subtracts two numbers with improved precision.
Notes
- This library uses
toPrecision(2)
internally, which may lead to rounding in some cases. Be aware of this limitation when using the library for calculations requiring high precision. - Input strings are parsed to numbers. Invalid string inputs will throw an error.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.