currency_type 1.0.0  currency_type: ^1.0.0 copied to clipboard
currency_type: ^1.0.0 copied to clipboard
Currency type for Dart and Flutter, a large numeric type, with exactly four digit after the decimal point, appropriate for financial calculations.
currency_type #
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 ? #
Currency prevent rounding error from floating point calculation. Currency also make comparisan more accurate and predictable.
Using Double
func main() {
  var a = 0.7;
  var b = 0.49;
  var c = a * a;
  print('$a * $a = $c');
  if (c == b) {
    print("Equal");
  } else {
    print("Not Equal");
  }
}
0.7 * 0.7 = 0.48999999999999994
Not Equal
Using Currency
func main() {
  var a = Currency.parse('0.7');
  var b = Currency.parse('0.49');
  var c = a * a;
  print('$a * $a = $c');
  if (c == b) {
    print("Equal");
  } else {
    print("Not Equal");
  }
}
0.7000 * 0.7000 = 0.4900
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: ^1.0.0
and then import to your dart file
import 'package:currency_type/currency_type.dart';
Variable declaration #
You can declare Currency variable in 3 ways:
- 
Create zero value var a = Currency();
- 
Convert from numbersvariable or 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);
- 
Parsing from string:var f = Currency.parse('1234567890'); var g = Currency.parse('1234567890123456.1234');
Operations #
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)) {
   ...
}
Big Numbers #
Unlike double, Currency can store very big number precisely.
func main() {
  var a = 12345678901234567.1234;
  print("Big Double   : $a");
  var b = Currency.parse('12345678901234567.1234');
  print("Big Currency : $b");
}
Big Double   : 12345678901234568.0
Big Currency : 12345678901234567.1234
Licensed under BSD 3-Clause license.