Dinero.js
Create, calculate, and format money in JavaScript and TypeScript
Install / Use
/learn @dinerojs/Dinero.jsREADME
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.
✨ Features
- 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
📦 Install
npm install dinero.js
# or
yarn add dinero.js
⚡️ Quick start
Dinero 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.
📚 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.
🤖 Agent Skills
If you use AI coding agents (Claude Code, Cursor, GitHub Copilot, etc.), install the Dinero.js skills to teach your agent best practices, common pitfalls, and correct usage patterns.
npx skills add dinerojs/skills
🏢 Used by
Dinero.js is used by WooCommerce, Highlight, Cypress, Vercel, AWS Labs, Module Federation, and many more.
👥 Contributors
From v1: <a href="https://sarahdayan.dev"><img src="https://avatars1.githubusercontent.com/u/5370675?v=4" alt="Sarah Dayan" width="30" height="30" style="border-radius:50%" /></a> <a href="https://github.com/yacinehmito"><img src="https://avatars1.githubusercontent.com/u/6893840?v=4" alt="Yacine Hmito" width="30" height="30" style="border-radius:50%" /></a> <a href="https://github.com/scotttrinh"><img src="https://avatars1.githubusercontent.com/u/1682194?v=4" alt="Scott Trinh" width="30" height="30" style="border-radius:50%" /></a> <a href="https://rolandasb.com"><img src="https://avatars0.githubusercontent.com/u/1409998?v=4" alt="Rolandas Barysas" width="30" height="30" style="border-radius:50%" /></a> <a href="https://www.luizpb.com/en/"><img src="https://avatars1.githubusercontent.com/u/1798830?v=4" alt="Luiz Bills" width="30" height="30" style="border-radius:50%" /></a> <a href="https://kunst.com.br"><img src="https://avatars2.githubusercontent.com/u/8649362?v=4" alt="Leonardo Dino" width="30" height="30" style="border-radius:50%" /></a> <a href="https://www.kizu.ru/"><img src="https://avatars3.githubusercontent.com/u/177485?v=4" alt="Roman Komarov" width="30" height="30" style="border-radius:50%" /></a> <a href="http://jotaoncode.com/"><img src="https://avatars3.githubusercontent.com/u/4575026?v=4" alt="Juan Garcia" width="30" height="30" style="border-radius:50%" /></a> <a href="https://github.com/frobinsonj"><img src="https://avatars3.githubusercontent.com/u/16726902?v=4" alt="Freddy Robinson" width="30" height="30" style="border-radius:50%" /></a> <a href="https://twitter.com/andybrk"><img src="https://avatars0.githubusercontent.com/u/273857?v=4" alt="Andy Burke" width="30" height="30" style="border-radius:50%" /></a> <a href="https://github.com/andrewiggins"><img src="https://avatars3.githubusercontent.com/u/459878?v=4" alt="Andre Wiggins" width="30" height="30" style="border-radius:50%" /></a> <a href="https://desandro.com"><img src="https://avatars0.githubusercontent.com/u/85566?v=4" alt="David DeSandro" width="30" height="30" style="border-radius:50%" /></a> <a href="http://maxk.se"><img src="https://avatars1.githubusercontent.com/u/19932622?v=4" alt="Max Körlinge" width="30" height="30" style="border-radius:50%" /></a> <a href="https://github.com/dotpack"><img src="https://avatars2.githubusercontent.com/u/1175814?v=4" alt="Ilia Ermolin" width="30" height="30" style="border-radius:50%" /></a> <a href="https://coina.ge"><img src="https://avatars1.githubusercontent.com/u/1531750?v=4" alt="Kevin Brown" width="30" height="30" style="border-radius:50%" /></a> <a href="https://seankwalker.com"><img src="https://avatars.githubusercontent.com/u/20524136?v=4" alt="Sean Walker" width="30" height="30" style="border-radius:50%" /></a> <a href="http://jnguyen.me/"><img src="https://avatars0.githubusercontent.com/u/1127677?v=4" alt="John Nguyen" width="30" height="30" style="border-radius:50%" /></a> <a href="https://journal.artfuldev.com"><img src="https://avatars.githubusercontent.com/u/3091087?v=4" alt="Sudarsan Balaji" width="30" height="30" style="border-radius:50%" /></a>
📜 License
Related Skills
node-connect
335.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
82.5kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
openai-whisper-api
335.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
