Сравнение BigDecimal и int в Java
какой из них является лучшим способом сравнения BigDecimal и int в Java: покрытие BigDecimal в int или преобразование int в BigDecimal ?
4 ответов
если вы ожидаете BigDecimal
значение должно быть действительно большим (т. е. вне диапазона int
значения, которое составляет -231 в 231-1) и / или содержать десятичные цифры, или просто хотите играть безопасно, вы должны преобразовать int
to BigDecimal
чтобы избежать ошибок переполнения / усечения.
в противном случае, если производительность действительно большая проблема (что бывает редко), то может лучше наоборот.
вы хотите преобразовать int
до BigDecimal
.
это потому, что вы не всегда сможете преобразовать BigDecimal в int; вы потеряете любую информацию после десятичной точки, и значение BigDecimal может находиться вне диапазона int.
As BigDecimal
расширяет диапазон int
вам придется преобразовать int
на BigDecimal
во всяком случае, их можно сравнить.
одной из причин не конвертировать int в BigDecimal является тот факт, что вы будете создавать новый объект, поэтому вы действительно бросаете мусор в свою кучу для выполнения равенства. Кроме того, примитивное равенство было бы быстрее, чем на фактическом объекте BigInteger.