Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev3.2.6

decimal

O pacote decimal permite que você trabalhe com números decimais sem perder precisão.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
1,1 mi
Curtidas
433
Pontos Pub
160

Instalar pacote

flutter pub add decimal

Visão geral do pacote

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

O pacote decimal fornece aritmética decimal precisa em Dart, permitindo o tratamento preciso de números decimais sem a perda de precisão comum em operações de ponto flutuante. Ele suporta representação e aritmética decimal exata, tornando-o ideal para cálculos financeiros e outras situações que exigem alta precisão. O pacote é compatível com todas as principais plataformas, incluindo móvel, web e desktop. Oferece uma API limpa para criar, manipular e formatar valores decimais com controle total sobre modos de arredondamento e escala.

Casos de uso

  • Cálculos financeiros
  • cálculos científicos
  • Gerenciamento de moeda
  • processamento de dados preciso
  • Conversões de unidade

Principais recursos

  • Aritmética decimal de alta precisão
  • Sem perda de precisão de ponto flutuante
  • Suporte para modos de arredondamento
  • Compatibilidade multiplataforma
  • API fácil de usar

Indicado para

  • Aplicações que exigem cálculos decimais exatos
  • Software financeiro ou contábil
  • Sistemas onde a precisão é crítica
  • Desenvolvedores evitando imprecisões de ponto flutuante

Considerações

  • Uso de memória ligeiramente maior que os doubles
  • Não otimizado para cargas de trabalho numéricas intensivas em desempenho
  • Requer uso explícito em vez de tipos numéricos nativos

README original

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

Dart Decimals

Build Status

This project enable to make computations on decimal numbers without losing precision like double operations.

For instance :

// with double
print(0.2 + 0.1); // displays 0.30000000000000004

// with decimal
print(Decimal.parse('0.2') + Decimal.parse('0.1')); // displays 0.3

Usage

To use this library in your code :

  • add a dependency in your pubspec.yaml :
dependencies:
  decimal:
  • add import in your dart code :
import 'package:decimal/decimal.dart';
  • Start computing using Decimal.parse('1.23').

Hint : To make your code shorter you can define a shortcut for Decimal.parse :

final d = (String s) => Decimal.parse(s);
d('0.2') + d('0.1'); // => 0.3

Formatting with intl

You can use the intl package to format decimal with DecimalFormat from the package:decimal/intl.dart library:

import 'package:decimal/decimal.dart';
import 'package:decimal/intl.dart';

main() {
  var value = Decimal.parse('1234.56');
  var formatter = DecimalFormatter(NumberFormat.decimalPattern('en-US'));
  print(formatter.format(value));
}

Tip: you can define an extension to make it more fluent:

extension on Decimal {
  String formatWith(NumberFormat formatter) => formatter.format(DecimalIntl(this));
}
main() {
  var value = Decimal.parse('1234.56');
  var formatter = DecimalFormatter(NumberFormat.decimalPattern('en-US'));
  print(value.formatWith(formatter));
}

WARNING: For now (2024.05.30) intl doesn't work with NumberFormat.maximumFractionDigits greater than 15 on web plateform and 18 otherwise.

Parsing with intl

You can use the NumberFormat from intl package to parse formatted decimals

var currencyFormatter = DecimalFormatter(NumberFormat.simpleCurrency(name: 'USD'));
currencyFormatter.parse('\$3.14'); // => 3.14

License

Apache 2.0

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote

Rankings