Dinero.js lets you create, calculate, and format money safely in JavaScript and TypeScript.
v2.dinerojs.com
Money is complex, and the primitives of the language aren't enough to properly represent it. Dinero.js is a JavaScript library that lets you express monetary values, but also perform mutations, conversions, comparisons, formatting, and overall make money manipulation easier and safer in your application.
ℹ️ Dinero.js v2 is currently in alpha. For v1, check the
v1branch and docs.
- Immutable & pure: every operation returns a new object, no side effects
- Type-safe: first-class TypeScript support with full type inference
- Tree-shakeable: import only what you use, keep bundles small
- Pluggable precision: use
numberby default orbigintfor large amounts - Non-decimal currencies: support for any base, including multi-subdivision currencies
- Framework-agnostic: works everywhere JavaScript runs
npm install dinero.js@alpha
# or
yarn add dinero.js@alphaDinero objects are minimal. Every function in dinero.js is side-effect free, allowing you only to bundle exactly what you use.
import { dinero, add, toDecimal } from 'dinero.js';
import { USD } from 'dinero.js/currencies';
const d1 = dinero({ amount: 500, currency: USD });
const d2 = dinero({ amount: 800, currency: USD });
const total = add(d1, d2);
toDecimal(total); // "13.00"Check out the quick start guide on the documentation.
The documentation lets you learn about all aspects of the library.
- Getting started to get up and running quickly with Dinero.js
- Core concepts to learn about the underlying principles behind the library
- Guides to dig deeper into specific use cases.
- API for a comprehensive list of available functions and their parameters.
- FAQ for common answers to questions you might have
Visit the full documentation to know more.
Dinero.js is used by WooCommerce, Highlight, Cypress, Vercel, AWS Labs, Module Federation, and many more.