<h1 align="center">Dinero.js</h1>

<div align="center"><img alt="" height="150" src="https://raw.githubusercontent.com/dinerojs/dinero.js/develop/logo.png" /></div>

<div align="center">Dinero.js is a library for working with monetary values in JavaScript.</div>

<div align="center" style="margin:15px 0">
  <a href="https://github.com/dinerojs/dinero.js/blob/master/LICENSE.md">
    <img alt="MIT License" src="https://img.shields.io/badge/license-MIT-blue.svg" />
  </a>
  <a href="https://www.npmjs.com/package/dinero.js">
    <img alt="NPM version" src="https://img.shields.io/npm/v/dinero.js.svg" />
  </a>
  <a href="https://coveralls.io/github/dinerojs/dinero.js?branch=master">
    <img alt="Coverage Status" src="https://img.shields.io/coveralls/github/dinerojs/dinero.js.svg?branch=master" />
  </a>
  <a href="https://github.com/semantic-release/semantic-release">
    <img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" />
  </a>
</div>

<div align="center"><a href="https://dinerojs.com/module-dinero">See full API docs</a></div>

<hr>

<h2 id="id-features">Features</h2>
<ul>
<li>Immutable and chainable API.</li>
<li>Global settings support.</li>
<li>Extended formatting and rounding options.</li>
<li>Native Intl support (no additional locale files).</li>
<li>Currency conversion.</li>
</ul>
<blockquote>
<p>Dinero.js v2 is in alpha! Check it out on the <a href="https://github.com/dinerojs/dinero.js/tree/main"><code>main</code> branch</a>.</p>
</blockquote>
<h2 id="id-downloadinstall">Download/install</h2>
<p>Dinero.js provides builds for different environments. It also comes with polyfilled versions for older browsers.</p>
<p>The recommended way of install is via <a href="https://www.npmjs.com">npm</a> or <a href="https://yarnpkg.com">Yarn</a>:</p>
<pre><code class="hljs language-sh">npm install dinero.<span class="hljs-property">js</span> --save

<span class="hljs-comment">// or</span>

yarn add dinero.<span class="hljs-property">js</span>
</code></pre>
<p>You can also <a href="https://www.jsdelivr.com/package/npm/dinero.js">download the files directly</a> or use the <a href="https://cdn.jsdelivr.net/npm/dinero.js/build">jsDelivr CDN</a>.</p>
<h3 id="id-umd-browser-global">UMD (browser global)</h3>
<p>Include Dinero.js in a script tag and access its methods through the global <code>Dinero</code> variable.</p>
<pre><code class="hljs language-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">&quot;path/to/umd/dinero.js&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span>
  Dinero();
<span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></pre>
<p>You can use an alias if you wish:</p>
<pre><code class="hljs language-js"><span class="hljs-keyword">var</span> <span class="hljs-title class_">Money</span> = <span class="hljs-title class_">Dinero</span>
</code></pre>
<p>Any browser that supports the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl">Internationalization API</a> is compatible with Dinero.js. This means <a href="https://caniuse.com/#feat=internationalization">most browsers</a>, and Internet Explorer 11 (this one requires the polyfilled version).</p>
<h3 id="id-commonjs-node">CommonJS (Node)</h3>
<pre><code class="hljs language-js"><span class="hljs-keyword">const</span> <span class="hljs-title class_">Dinero</span> = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;dinero.js&#x27;</span>)
</code></pre>
<p>You will need at least Node 6+ <a href="https://nodejs.org/api/intl.html#intl_embed_the_entire_icu_full_icu">with full-icu support</a>.</p>
<h3 id="id-amd-requirejs-systemjs-etc">AMD (RequireJS, System.js, etc.)</h3>
<pre><code class="hljs language-js"><span class="hljs-title function_">requirejs</span>([<span class="hljs-string">&#x27;path/to/amd/dinero&#x27;</span>], <span class="hljs-keyword">function</span>(<span class="hljs-params">Dinero</span>) {
  <span class="hljs-comment">//...</span>
})
</code></pre>
<h3 id="id-es-modules-modern-browser-webpack-etc">ES modules (modern browser, Webpack, etc.)</h3>
<pre><code class="hljs language-js"><span class="hljs-keyword">import</span> <span class="hljs-title class_">Dinero</span> <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;path/to/esm/dinero.js&#x27;</span>
</code></pre>
<h3 id="id-typescript">TypeScript</h3>
<p>For Typescript typings, you can use the definition file from <a href="https://github.com/DefinitelyTyped/DefinitelyTyped">DefinitelyTyped</a>.</p>
<pre><code class="hljs language-sh">npm install @types/dinero.js --save
</code></pre>
<p><strong>This is a third-party file.</strong> Please report issues and open PRs for it on the <a href="https://github.com/DefinitelyTyped/DefinitelyTyped">DefinitelyTyped</a> repository.</p>
<h3 id="id-react-native">React Native</h3>
<p>Dinero uses <a href="https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/toLocaleString"><code>Number.prototype.toLocaleString</code></a>, which by default <strong>isn&#39;t bundled with React Native (0.60+) on Android devices</strong>. For formatting and currency symbols to display properly, you need to change the preferred build flavor of JavaScriptCore in your project by opening <code>./android/app/build.gradle</code> and changing the line <code>def jscFlavor = &#39;org.webkit:android-jsc:+&#39;</code> to <code>def jscFlavor = &#39;org.webkit:android-jsc-intl:+&#39;</code>.</p>
<h2 id="id-quick-start">Quick start</h2>
<p>Dinero.js makes it easy to create, calculate and format monetary values in JavaScript. You can perform arithmetic operations, extensively parse and format them, check for a number of things to make your own development process easier and safer.</p>
<p><strong>Note:</strong> The library is globally available in the docs for you to be able to test it right in the browser console.</p>
<p>To get started, you need to create a new Dinero instance. Amounts are specified in <strong>minor currency units</strong> (e.g.: &quot;cents&quot; for the dollar). You can also specify an <a href="https://en.wikipedia.org/wiki/ISO_4217">ISO 4217 currency code</a> (default is <code>USD</code>).</p>
<p>This represents €50:</p>
<pre><code class="hljs language-js"><span class="hljs-keyword">const</span> price = <span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">5000</span>, <span class="hljs-attr">currency</span>: <span class="hljs-string">&#x27;EUR&#x27;</span> })
</code></pre>
<p>You can add or subtract any amount you want, by passing it another Dinero instance:</p>
<pre><code class="hljs language-js"><span class="hljs-comment">// returns a Dinero object with amount: 5500</span>
price.<span class="hljs-title function_">add</span>(<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span>, <span class="hljs-attr">currency</span>: <span class="hljs-string">&#x27;EUR&#x27;</span> }))

<span class="hljs-comment">// returns a Dinero object with amount: 4500</span>
price.<span class="hljs-title function_">subtract</span>(<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span>, <span class="hljs-attr">currency</span>: <span class="hljs-string">&#x27;EUR&#x27;</span> }))
</code></pre>
<p>Dinero.js is immutable, which means you&#39;ll always get a new Dinero instance when you perform any kind of transformation on it. Your original instance will remain untouched.</p>
<pre><code class="hljs language-js">price <span class="hljs-comment">// still returns a Dinero object with amount: 5000</span>
</code></pre>
<p>All transformative operations return a Dinero instance, so you can chain methods away as you like:</p>
<pre><code class="hljs language-js"><span class="hljs-comment">// returns a Dinero object with amount: 4000</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span> })
  .<span class="hljs-title function_">add</span>(<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span> }))
  .<span class="hljs-title function_">multiply</span>(<span class="hljs-number">4</span>)
</code></pre>
<p><strong>Note:</strong> because method calls are executed sequentially, mathematical operator precedence doesn&#39;t apply. When you execute the code above, the addition happens before the multiplication, evaluating to <code>4000</code>, while <code>500 + 500 * 4</code> would normally evaluate to <code>2500</code>. If you need to perform an operation before another, make sure you call it first.</p>
<p>You can ask all kinds of questions to your Dinero instance. You&#39;ll get a <code>Boolean</code> in return:</p>
<pre><code class="hljs language-js"><span class="hljs-comment">// returns true</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span> }).<span class="hljs-title function_">equalsTo</span>(<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span> }))

<span class="hljs-comment">// returns false</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">100</span> }).<span class="hljs-title function_">isZero</span>()

<span class="hljs-comment">// returns true</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">1150</span> }).<span class="hljs-title function_">hasCents</span>()
</code></pre>
<p>Because Dinero.js uses <code>Number.toLocaleString</code> under the hood, you can display it into any format, for any language. But no need to pass complicated objects of options to format Dinero instances to your liking. Dinero.js works with intuitive <code>String</code> masks:</p>
<pre><code class="hljs language-js"><span class="hljs-comment">// returns $5.00</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span> }).<span class="hljs-title function_">toFormat</span>(<span class="hljs-string">&#x27;$0,0.00&#x27;</span>)
</code></pre>
<p>Just set the locale before you call <code>toFormat</code>, and you&#39;ll get a display result with the proper format:</p>
<pre><code class="hljs language-js"><span class="hljs-comment">// returns 5 000 $US</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500000</span> })
  .<span class="hljs-title function_">setLocale</span>(<span class="hljs-string">&#x27;fr-FR&#x27;</span>)
  .<span class="hljs-title function_">toFormat</span>(<span class="hljs-string">&#x27;$0,0&#x27;</span>)
</code></pre>
<p>If you don&#39;t want to set the locale all the time, you can also define it globally:</p>
<pre><code class="hljs language-js"><span class="hljs-title class_">Dinero</span>.<span class="hljs-property">globalLocale</span> = <span class="hljs-string">&#x27;de-DE&#x27;</span>

<span class="hljs-comment">// returns 5.000 $</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500000</span> }).<span class="hljs-title function_">toFormat</span>(<span class="hljs-string">&#x27;$0,0&#x27;</span>)
</code></pre>
<p>You can still pass a locale to your Dinero instance if you need, which will prevail over the global one. If you use a transformative method on a Dinero object, its local locale will be inherited.</p>
<pre><code class="hljs language-js"><span class="hljs-comment">// returns 10 $US</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span> })
  .<span class="hljs-title function_">setLocale</span>(<span class="hljs-string">&#x27;fr-FR&#x27;</span>)
  .<span class="hljs-title function_">add</span>(<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">500</span> }))
  .<span class="hljs-title function_">toFormat</span>(<span class="hljs-string">&#x27;$0,0&#x27;</span>)
</code></pre>
<p>By default, new Dinero objects represent monetary values with two decimal places. If you want to represent more, or if you&#39;re using a currency with a different <a href="https://en.wikipedia.org/wiki/ISO_4217#Treatment_of_minor_currency_units_.28the_.22exponent.22.29">exponent</a>, you can specify a precision.</p>
<pre><code class="hljs language-js"><span class="hljs-comment">// represents $10.545</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">10545</span>, <span class="hljs-attr">precision</span>: <span class="hljs-number">3</span> })

<span class="hljs-comment">// The Japanese yen doesn&#x27;t have sub-units</span>
<span class="hljs-comment">// this represents Β₯1</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">1</span>, <span class="hljs-attr">currency</span>: <span class="hljs-string">&#x27;JPY&#x27;</span>, <span class="hljs-attr">precision</span>: <span class="hljs-number">0</span> })
</code></pre>
<p>If you&#39;re using the same currency more than once, it might be worth setting a default precision.</p>
<pre><code class="hljs language-js"><span class="hljs-comment">// The Iraqi dinar has up to 3 sub-units</span>
<span class="hljs-title class_">Dinero</span>.<span class="hljs-property">defaultCurrency</span> = <span class="hljs-string">&#x27;IQD&#x27;</span>
<span class="hljs-title class_">Dinero</span>.<span class="hljs-property">defaultPrecision</span> = <span class="hljs-number">3</span>

<span class="hljs-comment">// represents IQD1</span>
<span class="hljs-title class_">Dinero</span>({ <span class="hljs-attr">amount</span>: <span class="hljs-number">1000</span> })
</code></pre>
<p>This is only a preview of what you can do. Dinero.js has extensive documentation with examples for all of its methods.</p>
<p><a href="https://dinerojs.com/module-dinero">Read full documentation</a></p>
<h2 id="id-contributing">Contributing</h2>
<p>Pull requests are welcome! Please check the <a href="https://github.com/dinerojs/dinero.js/blob/master/CONTRIBUTING.md">contributing guidelines</a> for install instructions and general conventions.</p>
<h2 id="id-community">Community</h2>
<p>Selected content about Dinero.js:</p>
<ul>
<li><a href="https://devchat.tv/js-jabber/jsj-351-dinero-js-with-sarah-dayan/">JSJ 351: Dinero.js with Sarah Dayan</a></li>
<li><a href="https://frontstuff.io/build-a-shopping-cart-with-vue-and-dinerojs">Build a Shopping Cart with Vue and Dinero.js</a></li>
<li><a href="https://frontstuff.io/how-to-handle-monetary-values-in-javascript">How to Handle Monetary Values in JavaScript</a></li>
<li><a href="https://www.reddit.com/r/javascript/comments/84mhrw/dinerojs_an_immutable_library_to_create_calculate/">Comparison with Numeral.js</a></li>
<li>Submit your own blog post/tutorial!</li>
</ul>
<h2 id="id-support">Support</h2>
<p>Show some love by <a href="https://www.producthunt.com/posts/dinero-js">upvoting on Product Hunt</a> if you like, support and/or use the library πŸ”ΌπŸ˜</p>
<h2 id="id-contributors">Contributors</h2>
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
  <tr>
    <td align="center"><a href="https://sarahdayan.dev"><img src="https://avatars1.githubusercontent.com/u/5370675?v=4" width="100px;" alt=""/><br /><sub><b>Sarah Dayan</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=sarahdayan" title="Code">πŸ’»</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=sarahdayan" title="Documentation">πŸ“–</a> <a href="https://github.com/dinerojs/dinero.js/issues?q=author%3Asarahdayan" title="Bug reports">πŸ›</a> <a href="#content-sarahdayan" title="Content">πŸ–‹</a> <a href="#blog-sarahdayan" title="Blogposts">πŸ“</a> <a href="#ideas-sarahdayan" title="Ideas, Planning, & Feedback">πŸ€”</a> <a href="#infra-sarahdayan" title="Infrastructure (Hosting, Build-Tools, etc)">πŸš‡</a> <a href="#maintenance-sarahdayan" title="Maintenance">🚧</a> <a href="https://github.com/dinerojs/dinero.js/pulls?q=is%3Apr+reviewed-by%3Asarahdayan" title="Reviewed Pull Requests">πŸ‘€</a> <a href="#question-sarahdayan" title="Answering Questions">πŸ’¬</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=sarahdayan" title="Tests">⚠️</a> <a href="#tutorial-sarahdayan" title="Tutorials">βœ…</a></td>
    <td align="center"><a href="https://github.com/yacinehmito"><img src="https://avatars1.githubusercontent.com/u/6893840?v=4" width="100px;" alt=""/><br /><sub><b>Yacine Hmito</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=yacinehmito" title="Code">πŸ’»</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=yacinehmito" title="Documentation">πŸ“–</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=yacinehmito" title="Tests">⚠️</a></td>
    <td align="center"><a href="https://github.com/scotttrinh"><img src="https://avatars1.githubusercontent.com/u/1682194?v=4" width="100px;" alt=""/><br /><sub><b>Scott Trinh</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=scotttrinh" title="Code">πŸ’»</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=scotttrinh" title="Documentation">πŸ“–</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=scotttrinh" title="Tests">⚠️</a> <a href="#ideas-scotttrinh" title="Ideas, Planning, & Feedback">πŸ€”</a></td>
    <td align="center"><a href="https://rolandasb.com"><img src="https://avatars0.githubusercontent.com/u/1409998?v=4" width="100px;" alt=""/><br /><sub><b>Rolandas Barysas</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=rolandasb" title="Code">πŸ’»</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=rolandasb" title="Documentation">πŸ“–</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=rolandasb" title="Tests">⚠️</a></td>
    <td align="center"><a href="https://www.luizpb.com/en/"><img src="https://avatars1.githubusercontent.com/u/1798830?v=4" width="100px;" alt=""/><br /><sub><b>Luiz "Bills"</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=luizbills" title="Documentation">πŸ“–</a></td>
    <td align="center"><a href="https://kunst.com.br"><img src="https://avatars2.githubusercontent.com/u/8649362?v=4" width="100px;" alt=""/><br /><sub><b>Leonardo Dino</b></sub></a><br /><a href="#infra-leonardodino" title="Infrastructure (Hosting, Build-Tools, etc)">πŸš‡</a></td>
  </tr>
  <tr>
    <td align="center"><a href="https://www.kizu.ru/"><img src="https://avatars3.githubusercontent.com/u/177485?v=4" width="100px;" alt=""/><br /><sub><b>Roman Komarov</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=kizu" title="Documentation">πŸ“–</a></td>
    <td align="center"><a href="http://jotaoncode.com/"><img src="https://avatars3.githubusercontent.com/u/4575026?v=4" width="100px;" alt=""/><br /><sub><b>Juan Garcia</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=jotaoncode" title="Code">πŸ’»</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=jotaoncode" title="Documentation">πŸ“–</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=jotaoncode" title="Tests">⚠️</a></td>
    <td align="center"><a href="https://github.com/frobinsonj"><img src="https://avatars3.githubusercontent.com/u/16726902?v=4" width="100px;" alt=""/><br /><sub><b>Freddy Robinson</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=frobinsonj" title="Documentation">πŸ“–</a></td>
    <td align="center"><a href="https://twitter.com/andybrk"><img src="https://avatars0.githubusercontent.com/u/273857?v=4" width="100px;" alt=""/><br /><sub><b>Andy Burke</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=andyburke" title="Documentation">πŸ“–</a></td>
    <td align="center"><a href="https://github.com/andrewiggins"><img src="https://avatars3.githubusercontent.com/u/459878?v=4" width="100px;" alt=""/><br /><sub><b>Andre Wiggins</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=andrewiggins" title="Code">πŸ’»</a></td>
    <td align="center"><a href="https://desandro.com"><img src="https://avatars0.githubusercontent.com/u/85566?v=4" width="100px;" alt=""/><br /><sub><b>David DeSandro</b></sub></a><br /><a href="#design-desandro" title="Design">🎨</a></td>
  </tr>
  <tr>
    <td align="center"><a href="http://maxk.se"><img src="https://avatars1.githubusercontent.com/u/19932622?v=4" width="100px;" alt=""/><br /><sub><b>Max KΓΆrlinge</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=fongie" title="Documentation">πŸ“–</a></td>
    <td align="center"><a href="https://github.com/dotpack"><img src="https://avatars2.githubusercontent.com/u/1175814?v=4" width="100px;" alt=""/><br /><sub><b>Ilia Ermolin</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=dotpack" title="Code">πŸ’»</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=dotpack" title="Documentation">πŸ“–</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=dotpack" title="Tests">⚠️</a></td>
    <td align="center"><a href="https://coina.ge"><img src="https://avatars1.githubusercontent.com/u/1531750?v=4" width="100px;" alt=""/><br /><sub><b>Kevin Brown</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=thekevinbrown" title="Code">πŸ’»</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=thekevinbrown" title="Tests">⚠️</a></td>
    <td align="center"><a href="https://seankwalker.com"><img src="https://avatars.githubusercontent.com/u/20524136?v=4" width="100px;" alt=""/><br /><sub><b>Sean Walker</b></sub></a><br /><a href="https://github.com/dinerojs/dinero.js/commits?author=seankwalker" title="Code">πŸ’»</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=seankwalker" title="Documentation">πŸ“–</a> <a href="https://github.com/dinerojs/dinero.js/commits?author=seankwalker" title="Tests">⚠️</a></td>
    <td align="center"><a href="http://jnguyen.me/"><img src="https://avatars0.githubusercontent.com/u/1127677?v=4" width="100px;" alt=""/><br /><sub><b>John Nguyen</b></sub></a><br /><a href="#infra-nguyenj" title="Infrastructure (Hosting, Build-Tools, etc)">πŸš‡</a></td>
  </tr>
</table>

<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->

<p>This project follows the <a href="https://github.com/all-contributors/all-contributors">all-contributors</a> specification.</p>
<h2 id="id-acknowledgements">Acknowledgements</h2>
<p>Dinero.js is inspired from <a href="https://martinfowler.com/eaaCatalog/money.html">Martin Fowler&#39;s monetary representation</a>. Design-wise, it draws inspiration from <a href="http://moneyphp.org">Money PHP</a>, <a href="https://moment.github.io/luxon">Luxon</a>, <a href="https://momentjs.com">Moment.js</a> and <a href="http://numeraljs.com">Numeral.js</a> (even though it doesn&#39;t rely on any of them).</p>
<p>Logo by <a href="https://github.com/desandro">David DeSandro</a>.</p>
<h2 id="id-license">License</h2>
<p>Dinero.js is licensed under <a href="https://github.com/dinerojs/dinero.js/blob/master/LICENSE.md">MIT</a>.</p>
<hr>
<div align="center">

<p><a href="https://vercel.com/?utm_source=dinerojs&utm_campaign=oss"><img src="powered-by-vercel.svg" alt="Powered by Vercel"></a></p>
</div>