货币是复杂的,JavaScript不足以正确完整的去表示货币,就像我们用js操作css,xx="14px"这显然是丑陋的,但是目前早已有CSS.px(14),正规了许多,更能避免我们去犯一些错误,今天给大家分享的是Dinero.js。Dinero.js 是一个 JavaScript 库,可让您表达货币价值,还可以执行mutations、转换、比较、格式化,并总体上使您的应用程序中的货币操作更容易、更安全。
Github是个巨大的仓库,里面有非常多优秀的项目。其实并不是一定star多的项目才值得关注,有很多小而美的项目我们完全可以去关注学习,并及时fork。站在前人的肩膀上造轮子或者直接应用到项目中,这样才能不怕🙅🏻♀️被卷。我们每天争取用最短小的文章,最短的时间,给你带来最大的收益。
ℹ️ Dinero.js v2 目前处于 alpha 阶段。对于 v1,请检查 v1 分支和文档。
import { CNY, USD } from '@https://v2.dinerojs.com/docs/getting-started/quick-start';
import {
dinero,
add,
toUnit,
down,
multiply,
toSnapshot,
greaterThanOrEqual,
convert,
} from 'dinero.js';
//创建基础货币对象
const d1 = dinero({ amount: 35, currency: CNY });
const d2 = dinero({ amount: 200, currency: CNY });
//比较带单位的金钱
const hasFreeShipping = greaterThanOrEqual(d2, d1);
console.log('⏰', hasFreeShipping);
//格式化金钱金额💰 0.35
console.log('💰', toUnit(d1, { digits: 2, round: down }));
//计算金钱金额💰 35 + 200 = 235
console.log('🐻', add(d1, d2).toJSON());
//计算 5.5% 增值税税率
const tax = multiply(d2, 0.055);
const total = add(d2, tax);
console.log('🐶', toSnapshot(total));
//币种转换
const rates = { USD: { amount: 1549, scale: 4 } };
console.log('🇨🇳', convert(d2, USD, rates).toJSON());
full documentation 完整的官方文档方案