rational 2.2.3 rational: ^2.2.3 copied to clipboard
The rational package allows you to deal with rational numbers.
2.2.3 (2024-06-02) #
- Improve performance by working around the issue BigInt.gcd() is really slow with a custom
gcd
implementation based on Euclidean algorithm.
2.2.2 (2022-12-07) #
- Update files according to license.
2.2.1 (2022-11-24) #
- Update license file to be recognized by pub.dev.
2.2.0 (2022-03-20) #
- Explicitly throw an
ArgumentError
when a Rational is created with a zero denominator.
2.1.0 (2022-01-27) #
- Add
Rational.tryParse
.
2.0.0 (2021-11-29) #
The goal of this version is to move several decimal methods back to the decimal package and to have sharper types on the API.
It introduces several breaking changes.
~/
,round()
,floor()
,ceil()
,truncate()
now return aBigInt
. If you need aRational
you can convert theBigInt
toRational
withbigint.toRational()
.- Removal of
toDecimalString()
. You can replace it withrational.toDecimal(scaleOnInfinitePrecision: 10).toString()
using the decimal package. - Removal of
isNaN
getter. It was always returningfalse
. - Removal of
isInfinite
getter. It was always returningfalse
. - Removal of
isNegative
getter. You can replace it withrational < Rational.zero
. - Removal of
roundToDouble()
,floorToDouble()
,ceilToDouble()
,truncateToDouble()
. You can replace them byround().toDouble()
,floor().toDouble()
,ceil().toDouble()
,truncate().toDouble()
. - Removal of
toInt()
. You can replace it withrational.toBigInt().toInt()
. - Removal of
hasFinitePrecision
getter. This getter (provided as extension onRational
) is now part of the decimal package. - Removal of
precision
andscale
getters. They was only available on rational returningtrue
onhasFinitePrecision
(ie. decimal numbers). You can replace them withrational.toDecimal().precision
andrational.toDecimal().scale
using the decimal package. - Removal of
toStringAsFixed
,toStringAsExponential
andtoStringAsPrecision
. You can replace them withrational.toDecimal(scaleOnInfinitePrecision: xxx).toStringAsFixed
,rational.toDecimal(scaleOnInfinitePrecision: xxx).toStringAsExponential
andrational.toDecimal(scaleOnInfinitePrecision: xxx).toStringAsPrecision
using the decimal package.
Other changes:
- Add extension method
toRational()
onint
. - Add extension method
toRational()
onBigInt
.
1.2.1 (2021-05-28) #
- Improve performance of several methods by working around the issue BigInt.gcd() is really slow with a custom
gcd
implementation based on Euclidean algorithm.
1.2.0 (2021-05-28) #
- Improve parsing of number with big exponent part. However the exponent part must now be parsable as an int.
1.1.0+1 (2021-04-29) #
- Fix the doc of
pow
.
1.1.0 (2021-04-29) #
- Allow negative value as exponent of
pow
.
1.0.0 (2021-02-25) #
- Stable null safety release.
1.0.0-nullsafety (2020-11-27) #
- Migrate to nullsafety.
0.3.8 (2020-01-30) #
- Improve pub score.
0.3.7 (2019-09-02) #
0.3.6 (2019-09-02) #
- add
Rational.pow
.
0.3.5 (2019-07-29) #
- add
Rational.zero
andRational.one
. - add
Rational.inverse
.
0.3.4 (2019-04-25) #
0.3.3 (2019-04-08) #
- fix issue with
signnum
.
0.3.2 (2019-03-19) #
0.3.1 (2018-07-24) #
- migration to Dart 2.
0.3.0 (2018-07-10) #
- allow parsing of
1.
. - make
Rational.parse
a factory constructor.
0.2.0 (2018-03-15) #
- move to Dart SDK 2.0
- remove
BigInt
class - use
BigInt
provided bydart:core
v0.1.11 (2017-06-16) #
- add types.
v0.1.10+1 (2017-02-19) #
- fix bug on
operator %
with negative values on browser.
v0.1.10 (2017-02-19) #
v0.1.9 (2016-06-10) #
- fix a bug on
BigInt.toDouble
.
v0.1.8+1 (2014-10-29) #
- fix a bug for
Rational.precision
on negative number.
v0.1.8 (2014-10-29) #
- fix bugs with dart2js
- add
Rational.signum
- add
Rational.hasFinitePrecision
- add
Rational.precision
- add
Rational.scale
v0.1.7 (2014-10-07) #
Rational.parse
accepts strings in scientific notation (eg.1.5e-3
).
v0.1.6 (2014-10-06) #
BigInt.parse
accepts an optional prepending+
for positive integers.
Semantic Version Conventions #
- Stable: All even numbered minor versions are considered API stable: i.e.: v1.0.x, v1.2.x, and so on.
- Development: All odd numbered minor versions are considered API unstable: i.e.: v0.9.x, v1.1.x, and so on.