У меня есть одно значение BigInteger и одно значение BigDecimal, которые я хотел бы умножить вместе и получить результат BigDecimal.
Например, если у меня есть
Большой Целый #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)»
Вам нужно научиться читать javadoc. Если вы сделаете это, вы обнаружите, что вы можете только умножать BigInteger на BigInteger или BigDecimal на BigDecimal. Но также то, что BigDecimal позволяет создавать BigDecimal из BigIntgeer или преобразовывать BigDecimal в BigInteger. Таким образом, составляя эти функции, вы можете делать все, что вам нужно. Но вам нужно прочитать javadoc.




Просто переверни ситуацию:
BigDecimal multipliedResult = bd1.multiply(new BigDecimal(b1))
Вы не можете сделать someBigInt.multiply(someBigDec), но someBigDec.multiply(someBigDecCreatedFromBigInt) прекрасно работает!
Да, и вы также не можете умножать
BigIntegerна15или"a"илиnew Thread()- опять к чему вы? Вы проверяли API?