diff --git a/.gitignore b/.gitignore index dbc69d2..cba1f2d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,7 @@ packages .packages pubspec.lock .pub/ -.dart_tool \ No newline at end of file +.dart_tool + +.idea/** +*.iml diff --git a/lib/src/big_decimal.dart b/lib/src/big_decimal.dart index 07c3df5..ca24e42 100644 --- a/lib/src/big_decimal.dart +++ b/lib/src/big_decimal.dart @@ -1,4 +1,5 @@ // ignore_for_file: constant_identifier_names +import 'dart:math' as math; enum RoundingMode { UP, @@ -163,7 +164,7 @@ class BigDecimal implements Comparable { } double toDouble() => - intVal.toDouble() / BigInt.from(10).pow(scale).toDouble(); + intVal.toDouble() / math.pow(10.0, scale); BigInt toBigInt({RoundingMode roundingMode = RoundingMode.UNNECESSARY}) => withScale(0, roundingMode: roundingMode).intVal; int toInt({RoundingMode roundingMode = RoundingMode.UNNECESSARY}) => diff --git a/test/big_decimal_test.dart b/test/big_decimal_test.dart index 3090c1e..6fb3703 100644 --- a/test/big_decimal_test.dart +++ b/test/big_decimal_test.dart @@ -389,6 +389,7 @@ void main() { tabCase([BigInt.from(9223372036854775807).dec, 9223372036854776000.0]), tabCase([BigInt.from(-9223372036854775808).dec, -9223372036854775808.0]), tabCase([BigInt.from(-9223372036854775808).dec, -9223372036854776000.0]), + tabCase(['1.0e2'.dec, 100.0]), ]), );