accounting-js vs currency-formatter vs currency.js vs intl vs numeral
货币格式化
accounting-jscurrency-formattercurrency.jsintlnumeral类似的npm包:

货币格式化

货币格式化库是 JavaScript 中用于将数字转换为货币格式的工具。这些库提供了格式化、解析和操作货币值的功能,考虑了不同的货币符号、千位分隔符和小数位。它们在电子商务、金融应用和任何需要以货币形式显示数字的地方都非常有用。accounting-js 是一个轻量级的库,提供简单的货币格式化和数学运算。currency-formatter 专注于根据区域设置格式化货币,支持多种货币和自定义格式。currency.js 提供了一个面向对象的方法来处理货币值,支持链式调用和精确的数学运算。intl 是一个内置的国际化 API,提供强大的格式化功能,包括货币、数字和日期。numeral 是一个灵活的库,支持数字格式化、解析和自定义格式,适用于需要复杂数字表示的应用。

npm下载趋势

3 年

GitHub Stars 排名

统计详情

npm包名称
下载量
Stars
大小
Issues
发布时间
License
accounting-js011946.9 kB121 年前MIT
currency-formatter0212-155 年前MIT
currency.js03,375-655 年前MIT
intl01,688-7910 年前MIT
numeral09,699-34410 年前MIT

功能对比: accounting-js vs currency-formatter vs currency.js vs intl vs numeral

货币格式化

  • accounting-js:

    accounting-js 提供基本的货币格式化功能,支持自定义货币符号、千位分隔符和小数位。它适合简单的货币显示,但不支持根据区域自动格式化。

  • currency-formatter:

    currency-formatter 专注于根据区域设置格式化货币,支持多种货币和自定义格式。它可以根据提供的区域和货币代码自动调整格式,非常适合国际化应用。

  • currency.js:

    currency.js 提供精确的货币格式化,支持链式调用和自定义格式。它允许开发者定义货币符号和格式,提供更大的灵活性。

  • intl:

    intl 的 Intl.NumberFormat 接口提供强大的货币格式化功能,支持根据区域自动格式化。它是一个内置的解决方案,遵循国际化标准,适合需要高质量格式化的应用。

  • numeral:

    numeral 提供灵活的数字格式化功能,支持自定义货币格式。虽然它不是专门针对货币设计的,但可以通过自定义格式实现复杂的货币显示。

区域支持

  • accounting-js:

    accounting-js 支持基本的区域设置,但需要手动配置货币符号和格式。它不提供自动区域识别功能。

  • currency-formatter:

    currency-formatter 提供强大的区域支持,能够根据区域代码自动格式化货币。它内置了多种货币和格式,适合国际化应用。

  • currency.js:

    currency.js 允许开发者自定义货币符号和格式,但不提供内置的区域支持。需要手动配置以适应不同区域。

  • intl:

    intl 的 Intl.NumberFormat 接口提供全面的区域支持,能够根据区域自动格式化货币、数字和日期。它是一个标准化的解决方案,支持多种语言和区域。

  • numeral:

    numeral 支持自定义区域设置,但需要手动配置。它不提供内置的区域支持,适合需要灵活配置的应用。

数学运算

  • accounting-js:

    accounting-js 提供基本的数学运算功能,如加、减、乘、除,支持货币值的精确计算。它适合简单的财务计算,但功能较为有限。

  • currency-formatter:

    currency-formatter 主要专注于货币格式化,不提供数学运算功能。它适合需要格式化但不需要计算的场景。

  • currency.js:

    currency.js 提供精确的货币运算,支持链式调用和自定义运算。它是处理货币计算的强大工具,适合需要高精度运算的应用。

  • intl:

    intl 不提供数学运算功能,主要用于格式化和国际化。它适合需要格式化但不涉及计算的场景。

  • numeral:

    numeral 提供基本的数字运算功能,支持加、减、乘、除,但不专门针对货币。它适合需要对数字进行简单运算的应用。

代码示例

  • accounting-js:

    accounting-js 货币格式化示例

    import accounting from 'accounting-js';
    
    // 格式化货币
    const formatted = accounting.formatMoney(1234567.89, { symbol: '$' });
    console.log(formatted); // 输出: $1,234,567.89
    
    // 货币运算
    const sum = accounting.add(100, 200);
    console.log(sum); // 输出: 300
    
  • currency-formatter:

    currency-formatter 货币格式化示例

    import { format } from 'currency-formatter';
    
    // 根据区域格式化货币
    const formatted = format(1234567.89, { code: 'USD' });
    console.log(formatted); // 输出: $1,234,567.89
    
  • currency.js:

    currency.js 货币格式化和运算示例

    import { Currency } from 'currency.js';
    
    // 创建货币实例
    const price = Currency(1234.56, { symbol: '$' });
    const tax = Currency(0.1); // 10% 税
    
    // 计算总价
    const total = price.add(price.multiply(tax));
    console.log(total.format()); // 输出: $1,357.12
    
  • intl:

    intl 货币格式化示例

    const numberFormat = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
    const formatted = numberFormat.format(1234567.89);
    console.log(formatted); // 输出: $1,234,567.89
    
  • numeral:

    numeral 数字格式化示例

    import numeral from 'numeral';
    
    // 格式化数字
    const formatted = numeral(1234567.89).format('$0,0.00');
    console.log(formatted); // 输出: $1,234,567.89
    
    // 解析数字
    const value = numeral('$1,234,567.89').value();
    console.log(value); // 输出: 1234567.89
    

如何选择: accounting-js vs currency-formatter vs currency.js vs intl vs numeral

  • accounting-js:

    选择 accounting-js 如果您需要一个轻量级的库来进行基本的货币格式化和简单的数学运算。它特别适合不需要复杂功能的项目。

  • currency-formatter:

    选择 currency-formatter 如果您需要根据不同区域设置格式化货币。它支持多种货币和自定义格式,适合需要国际化支持的应用。

  • currency.js:

    选择 currency.js 如果您需要一个面向对象的解决方案来处理货币值,支持链式调用和精确运算。它适合需要对货币进行更复杂操作的项目。

  • intl:

    选择 intl 如果您需要一个内置的解决方案,支持多种国际化功能,包括货币格式化。它适合需要遵循现代 Web 标准的应用。

  • numeral:

    选择 numeral 如果您需要一个灵活的库来处理数字格式化和解析,支持自定义格式。它适合需要对数字进行复杂格式化的应用。

accounting-js的README

NPM version

accounting-js is a tiny JavaScript library for number, money and currency parsing/formatting. It's lightweight, fully localizable, has no dependencies, and works great client-side or server-side. Use standalone or as a nodeJS/npm and AMD/requireJS module.

Documentation

Quickstart

Install

npm install accounting-js

Use

Format number

import { formatNumber } from 'accounting-js';

// Default usage
formatNumber(5318008);
// ⇨ 5,318,008

// Custom format
formatNumber(9876543.21, { precision: 3, thousand: " " });
// ⇨ 9 876 543.210

Format money

import { formatMoney } from 'accounting-js';

// Default usage
formatMoney(12345678);
// ⇨ $12,345,678.00

// European formatting (custom symbol and separators)
formatMoney(4999.99, { symbol: "€", precision: 2, thousand: ".", decimal: "," });
// ⇨ €4.999,99

Convert money to numeric

import { unformat } from 'accounting-js';

unformat('£ 12,345,678.90 GBP');
// ⇨ 12345678.9

Accounting toFixed()

// Native toFixed has rounding issues
(0.615).toFixed(2);
// ⇨ '0.61'

// With accounting-js
toFixed(0.615, 2);
// ⇨ '0.62'

Copyright (c) 2016-present Stanislav Lesnikov, MIT License

Copyright (c) 2014 Open Exchange Rates, MIT License