Метод compareTo абстрактный
int compareTo(Сравнивает это с other.
Возвращает отрицательное число, если this меньше other, ноль, если они равны, и положительное число, если this больше other.
Порядок, представленный этим методом, является полным порядком значений num. Все различные значения double не равны, как и все различные целые числа, но целые числа равны double, если имеют одинаковое числовое значение.
Для double операция compareTo отличается от частичного порядка, заданного operator==, operator< и operator>. Например, IEEE double налагает, что 0.0 == -0.0 и все операции сравнения с NaN возвращают false.
Эта функция налагает полное упорядочение для double. При использовании compareTo выполняются следующие свойства:
- Все значения NaN считаются равными и больше любого числового значения.
- -0.0 меньше 0.0 (и целого числа 0), но больше любого ненулевого отрицательного значения.
- Отрицательная бесконечность меньше всех других значений, а положительная бесконечность больше всех значений, кроме NaN.
- Все остальные значения сравниваются по их числовому значению.
Примеры:
print(1.compareTo(2)); // => -1 print(2.compareTo(1)); // => 1 print(1.compareTo(1)); // => 0 // The following comparisons yield different results than the // corresponding comparison operators. print((-0.0).compareTo(0.0)); // => -1 print(double.NAN.compareTo(double.NAN)); // => 0 print(double.INFINITY.compareTo(double.NAN)); // => -1 // -0.0, and NaN comparison operators have rules imposed by the IEEE // standard. print(-0.0 == 0.0); // => true print(double.NAN == double.NAN); // => false print(double.INFINITY < double.NAN); // => false print(double.NAN < double.INFINITY); // => false print(double.NAN == double.INFINITY); // => false
Исходный код
int compareTo(num other);
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/num/compareTo.html