decimal 2.3.0 icon indicating copy to clipboard operation
decimal: ^2.3.0 copied to clipboard

The decimal package allows you to deal with decimal numbers without losing precision.

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 by wrapping the decimal into DecimalIntl 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 = NumberFormat.decimalPattern('en-US');
  print(formatter.format(DecimalIntl(value)));
}

Tip: you can define an extension to make it less verbose:

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

License #

Apache 2.0

184
likes
130
pub points
98%
popularity

Publisher

unverified uploader

The decimal package allows you to deal with decimal numbers without losing precision.

Repository (GitHub)

Documentation

API reference

License

Icon for licenses.unknown (LICENSE)

Dependencies

rational

More

Packages that depend on decimal