Skip to content

tantowi/dart_currency_type

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Currency type in dart / flutter

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages