Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.3.0

currency_formatter

Um pacote para formatar dinheiro facilmente. Ele permite definir um símbolo e formato de moeda personalizados, usando alguns dos formatos embutidos para as principais moedas ou usando o do sistema.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
13,5 mil
Curtidas
50
Pontos Pub
150

Instalar pacote

flutter pub add currency_formatter

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que simplifica a formatação de valores monetários. Permite aos usuários formatar números como moeda com suporte para símbolos personalizados, formatos pré-definidos para moedas principais ou configurações padrão do sistema. Ideal para aplicativos que exigem exibição consistente e localizada de dinheiro, como comércio eletrônico, aplicativos financeiros ou rastreadores de despesas. O pacote é leve e compatível com todas as principais plataformas, garantindo uma experiência uniforme ao usuário.

Casos de uso

  • Exibindo preços em aplicativos de comércio eletrônico
  • Formatar despesas em ferramentas de orçamento
  • Localizando moedas em aplicativos internacionais
  • Mostrando valores de transações em painéis financeiros
  • Personalizando símbolos de moeda em aplicativos multi-região

Principais recursos

  • Suporta símbolos de moeda personalizados
  • Inclui formatos embutidos para moedas principais
  • Usa moeda definida pelo sistema por padrão
  • Compatibilidade multiplataforma
  • API simples para formatação de números
  • Separadores decimais e de milhar configuráveis

Indicado para

  • Desenvolvedores construindo aplicativos financeiros ou de compras
  • Aplicativos direcionados a múltiplas regiões
  • Projetos que precisam de exibição de moeda localizada
  • Equipes que desejam configuração mínima para formatação de dinheiro
  • Usuários que preferem apresentação de moeda semelhante à nativa

Considerações

  • Requer tratamento manual do mapeamento de código de moeda
  • Limitado à formatação; não analisa nem valida a entrada
  • Pode ser necessário lógica adicional para conversão de moeda bidirecional
  • Depende das configurações de local para o fallback da moeda do sistema
  • Não otimizado para atualizações em tempo real das taxas de câmbio

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

currency_formatter

A package to easily format money. It supports setting a custom currency symbol and format, using some of the inbuilt ones for the main currencies or using the system one.

Format money

To set how a double will be formatted, create a CurrencyFormat:

CurrencyFormat euroSettings = CurrencyFormat(
  code: 'eur',
  symbol: '€',
  symbolSide: SymbolSide.left,
  thousandSeparator: '.',
  decimalSeparator: ',',
  symbolSeparator: ' ',
);
  • symbolSide can be set to SymbolSide.left, SymbolSide.right, or SymbolSide.none.
  • thousandSeparator and decimalSeparator default to '.', ',' or ',','.' automatically depending on symbolSide.
  • negativeSignPlacement can be set to NegativeSignPlacement.beforeSymbol or NegativeSignPlacement.afterSymbol, and defaults to NegativeSignPlacement.afterSymbol.

To format a num, CurrencyFormatter.format() is used:

num amount = 1910.9347;
String formatted = CurrencyFormatter.format(amount, euroSettings); // 1.910,93 €
String compact = CurrencyFormatter.format(amount, euroSettings, compact: true); // 1,91K €
String threeDecimal = CurrencyFormatter.format(amount, euroSettings, decimal: 3); // 1.910,945 €

Parse formatted money

To get a num from a formatted String, use CurrencyFormatter.parse():

// Above's example continuation
num parseFormatted = CurrencyFormatter.parse(formatted, euroSettings); // 1910.93
num parseCompact = CurrencyFormatter.parse(compact, euroSettings); // 1910.0
num parseThreeDecimal = CurrencyFormatter.parse(threeDecimal, euroSettings); // 1910.935

Predefined CurrencyFormats

Predefined settings for many currencies are also included in this package. They are listed in the CurrencyFormatter.majorsList list and defined as static constants in the CurrencyFormat class.

String inUSD = CurrencyFormatter.format(amount, CurrencyFormat.usd); // $ 1,910.93
String inRUB = CurrencyFormatter.format(amount, CurrencyFormatter.fromCode('rub')!); // 1.910,93 ₽

String jpySymbol = CurrencyFormatter.jpy.symbol; // ¥
Get local CurrencyFormat

In Flutter, you can get the default CurrencyFormat according to the device language using CurrencyFormat.local:

String inSystemCurrency = CurrencyFormatter.format(amount, CurrencyFormat.local ?? CurrencyFormat.usd);

If instead you want to get the CurrencyFormat for a specific locale, use CurrencyFormat.fromLocale():

String inLocaleCurrency = CurrencyFormatter.format(amount, CurrencyFormat.fromLocale('en_US')!);
Get CurrencyFormat from symbol or code

You can get a CurrencyFormat from a currency symbol (if it is in CurrencyFormatter.majors) with CurrencyFormat.fromSymbol():

String fromSymbol = CurrencyFormatter.format(amount, CurrencyFormat.fromSymbol('£')!); // £ 1,910.35

String fromCode = CurrencyFormatter.format(amount, CurrencyFormat.fromCode('gbp')!); // £ 1,910.35

Using custom currencies

Let's say you want to use the following custom currency seamlessly:

CurrencyFormat khr = CurrencyFormat(
  symbol: '៛',
  symbolSide: SymbolSide.right,
);

You can create your own majors list:

const List<CurrencyFormat> myCurrencies = [
  ...CurrencyFormatter.majorsList,
  khr,
];

And use it to get the currency corresponding to a symbol or code, or the local one:

CurrencyFormat.fromSymbol('៛', myCurrencies); // khr
CurrencyFormat.fromCode('khr', myCurrencies); // khr

// custom local currency
CurrencyFormat? localCurrency() =>
    CurrencyFormat.fromSymbol(CurrencyFormat.localSymbol, myCurrencies);
// or
CurrencyFormat? localCurrency() =>
    CurrencyFormat.fromLocale(null, myCurrencies);

Categorias

Dependências

Lista de dependências 2 itens

  • intl>=0.17.0 <0.21.0
  • web>=1.0.0 <=3.0.0

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.