/dart_currency_type

Currency type in dart / flutter

Primary LanguageDartBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

currency_type

Version

The Currency type is a large numeric type, with exactly four digit after the decimal point. Internally, Currency using integer calculation to minimizes rounding errors.

The Currency type is appropriate for financial calculations that require large numbers of significant integral, up to four fractional digits, and minimize error caused by floating point calculation.



Why Using Currency ?


Using Double
func main() {
  var a = 0.7;
  var b = 0.49;
  var c = aa * aa;

  print('Result : $c');

  if (c == b) {
    print("Yes it's equal");
  } else {
    print("No it's not equal");
  }
}
Result : 0.48999999999999994
No it's not equal

Using Currency
func main() {
  var a = Currency.parse('0.7');
  var b = Currency.parse('0.49');
  var c = a * a;

  print('Result : $c');

  if (c == b) {
    print("Yes it's equal");
  } else {
    print("No it's not equal");
  }
}
Result : 0.4900
Yes it's equal

How To Use


To use currency_type module, you have to add to your project by run following command:

$ dart pub add currency_type 

or add directly in pubspec.yaml

dependencies: 
  currency_type: ^0.0.2

and then import to your dart file

import 'package:currency_type/currency_type.dart';

Instantiate


You can instantiate Currency with 3 ways:

  1. Create zero value

    var a = Currency();
  2. Import from num varible or num literal :

    var b = 1234;
    var c = 1234.56;
    
    var d = Currency.from(b);
    var e = Currency.from(c);
    
    var f = Currency.from(1234);
    var g = Currency.from(1234.56);
  3. Parsing from string :

    var f = Currency.parse('1234567890');
    var g = Currency.parse('1234567890123456.1234');

Currency can store very large number beyond double, and the only way to instantiate is by parsing from string.


Operation


You can do arithmetic operation on `Currency` like addition, subtraction, multiplication, or division
var h = d + e; 
var i = g - h;
var j = d * e; 
var k = g / f; 

var l = (d + e) * g;

Currency can also be compared to other Currency

if (k == l) {
   ...
}


if (h > Currency.from(100)) {
   ...
}




Copyright (c) 2021, Mohamad Tantowi Mustofa (tantowi.com)
Licensed under BSD 3-Clause license.