Проверка Kotlin BigDecimal Остаток() работает неправильно с десятичным значением инкремента.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проверка Kotlin BigDecimal Остаток() работает неправильно с десятичным значением инкремента.

Сообщение Anonymous »

У меня возникла проблема с проверкой BigDecimal остатка() в Kotlin. Даже если количество должно полностью делиться на приращение, проверка остатка не удалась.
Например, при проверке того, делится ли количество 6 на приращение 0,5, код неправильно выдает исключение. хотя 6 должно быть действительным (поскольку оно делится на 0,5).
Вот мой код:
it.quantity.remainder(product.toIncrementByNumber()) != BigDecimal.ZERO -> {
val remainder = it.quantity.remainder(product.toIncrementByNumber())
throw OperationNotAllowedException(
message = "Quantity for product ${product.name} is invalid"
)
}

Here's my toIncrementByNumber method

fun Product.toIncrementByNumber(): BigDecimal {
return when (this.incrementBy) {
IncrementByType.QUARTER_KG -> {
BigDecimal(0.25)
}

IncrementByType.HALF_KG -> {
BigDecimal(0.5)
}

IncrementByType.ONE_KG -> {
BigDecimal(1)
}
}
}

And here's my product.quantity

data class ProductQuantity(
val productId: Long,
val quantity: BigDecimal
)


Подробнее здесь: https://stackoverflow.com/questions/793 ... -increment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проверка Kotlin BigDecimal Остаток() работает неправильно с десятичным значением инкремента.
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Почему BigDecimal.multiply(BigDecimal, MathContext) медленнее, чем BigDecimal.multiply(BigDecimal)?
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Почему BigDecimal.multiply(BigDecimal, MathContext) медленнее, чем BigDecimal.multiply(BigDecimal)?
    Anonymous » » в форуме JAVA
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Почему BigDecimal.multiply(BigDecimal, MathContext) медленнее, чем BigDecimal.multiply(BigDecimal)?
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как в Java работают операторы пост-инкремента (i++) и предварительного инкремента (++i)?
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»