compareTo method

  1. @override
int compareTo(
  1. DynamicNumber other
)
override

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);
  }
}