Introduction to Number Precision in JavaScript
Handling number precision in JavaScript can often be a challenging task due to the floating-point arithmetic issues inherent in the language. The number-precision library offers a robust solution for dealing with these problems by providing dozens of useful APIs for precise mathematical operations. In this article, we will explore these APIs along with practical code snippets and examples.
Basic Usage
First, let’s see how to include number-precision
in our project:
// Install via npm
npm install number-precision --save
// Include in your project
const NP = require('number-precision');
Essential APIs
Addition
NP.plus(0.1, 0.2); // returns 0.3 instead of 0.30000000000000004
Subtraction
NP.minus(0.3, 0.1); // returns 0.2 instead of 0.19999999999999998
Multiplication
NP.times(0.1, 0.2); // returns 0.02 instead of 0.020000000000000004
Division
NP.divide(0.3, 0.1); // returns 3 instead of 2.9999999999999996
Rounding
NP.round(1.005, 2); // returns 1.01
Modulus
NP.mod(3, 2); // returns 1
Additional Utilities
Strip
Remove the insignificant digits of a number:
NP.strip(0.09999999999999998); // returns 0.1
Range
Determine if a number is within a specified range:
NP.range(0.1, 0.099, 0.101); // returns true
ToFixed
Convert to fixed-point notation:
NP.toFixed(1.3456, 2); // returns '1.35'
Real World Application
Let’s create a simple shopping cart application that uses number-precision
to handle price calculations accurately.
// Shopping cart item
class CartItem {
constructor(name, price, quantity) {
this.name = name;
this.price = price;
this.quantity = quantity;
}
getTotalPrice() {
return NP.times(this.price, this.quantity);
}
}
// Shopping cart
class ShoppingCart {
constructor() {
this.items = [];
}
addItem(item) {
this.items.push(item);
}
getTotalAmount() {
return this.items.reduce((total, item) => NP.plus(total, item.getTotalPrice()), 0);
}
}
// Usage Example
const cart = new ShoppingCart();
cart.addItem(new CartItem('Apple', 0.99, 3));
cart.addItem(new CartItem('Banana', 1.29, 2));
console.log('Total Amount: $', cart.getTotalAmount()); // Total Amount: $5.55
This application ensures that the total calculations are accurate and free from the typical floating-point arithmetic issues.
Conclusion
In this article, we explored the powerful number-precision
library that helps in handling precise number calculations in JavaScript. With dozens of useful APIs and utilities, it is an indispensable tool for developers dealing with financial and scientific computations.
Hash: 710e25d5af196307387fc27a0f2c9d0d3dafc19e5c2c63f249f57936a7bd8df3