Как умножить значение BigInteger на значение BigDecimal? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть одно значение BigInteger и одно значение BigDecimal, которые я хотел бы умножить вместе и в результате получить результат BigDecimal.

Например, если у меня есть

BigInteger # 1: 95

BigDecimal # 1: 0,25124

Умножение этих значений вместе даст: 23,8678

Вот что я пробовал:

    long firstLong = 95;
    float firstFloat = 0.25124f;
    BigInteger b1 = BigDecimal.valueOf(firstLong).toBigInteger();
    BigDecimal bd1 = BigDecimal.valueOf(firstFloat);

    BigDecimal multipliedResult = b1.multiply(bd1);
    System.out.println(multipliedResult);

Ожидаемый результат: 23,8678

Текущий вывод: «Метод умножения (BigInteger) в типе BigInteger не применим для аргументов (BigDecimal)» *

1 Ответ

6 голосов
/ 03 июля 2019

Просто переверните вещи:

BigDecimal multipliedResult = bd1.multiply(new BigDecimal(b1))

Вы не можете сделать someBigInt.multiply(someBigDec), но someBigDec.multiply(someBigDecCreatedFromBigInt) прекрасно работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...