Сравнение BigDecimal “>=”

203
29 января 2020, 20:40

Есть ли более короткая запись сравнения BigDecimal chisl1 >= chisl2, чтобы не писать два условия в if?

import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
    BigDecimal chisl1 = new BigDecimal(5);
    BigDecimal chisl2 = new BigDecimal(5);
    if (chisl1.compareTo(chisl2) == 1 || chisl1.compareTo(chisl2) == 0) {
        System.out.println("chisl1 >= chisl2");
    }
}
}
Answer 1
chisl1.compareTo(chisl2) >= 0

Единственный важный момент: нужно избегать таких сравнений, как

chisl1.compareTo(chisl2) == 1

int compareTo(T o)

Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

compareTo не обязан возвращать 1, если текущий экземпляр больше, он вполне может вернуть другое положительное число. Например, такая реализация вполне корректна:

public class MyByte implements Comparable<MyByte> {
    private byte value;
    @Override
    public int compareTo(MyByte other) {
        return this.value - other.value;
    }
    ...
}
READ ALSO
Как игнорировать null значения в SQL запросе

Как игнорировать null значения в SQL запросе

Написал вот такой запрос

144
Получить результат из потока

Получить результат из потока

Подскажите, пожалуйста как лучше делать в таких ситуациях

167
Android редактирование .doc или .pdf

Android редактирование .doc или .pdf

Необходимо имея шаблон документа, заполнить поля в нем, и сохранить послеВсе это сделать программно, изнутри Android приложения

141
Spring security теряет сессию после ajax

Spring security теряет сессию после ajax

У меня есть проект на спринг который состоит из двух частей: клиент и серверПрошу посморите на гит хаб: клиент: https://github

182