compareTo method
Compares this object to another object.
Returns a value like a Comparator when comparing this
to other
.
That is, it returns a negative integer if this
is ordered before other
,
a positive integer if this
is ordered after other
,
and zero if this
and other
are ordered together.
The other
argument must be a value that is comparable to this object.
Implementation
@override
int compareTo(DynamicNumber<dynamic> other) {
if (other is Decimal) {
var p = higherPrecision(other);
return withPrecision(p)._n.compareTo(other.withPrecision(p)._n);
} else if (other is DynamicInt) {
var cmp = toDynamicInt().compareTo(other);
if (cmp == 0) {
return isDecimalPartZero ? 0 : 1;
} else {
return cmp;
}
} else {
return -other.compareTo(this);
}
}