Multiply java что это
Перейти к содержимому

Multiply java что это

  • автор:

Использование BigInteger для суммы простых чисел в Java

Класс BigInteger в Java обеспечивает возможность работы с действительно большими числами, которые не умещаются в стандартные типы long или int . Для сложения двух таких чисел используется метод .add() :

Скопировать код

BigInteger big1 = new BigInteger("12345678901234567890"); BigInteger big2 = new BigInteger("98765432109876543210"); BigInteger result = big1.add(big2); System.out.println("Результат: " + result);

Для проведения других математических операций, метод .add() можно заменить на .multiply() , .subtract() или .divide() .

Неизменяемость и выполнение операций с BigInteger

Объекты BigInteger являются неизменяемыми. Это означает, что при выполнении арифметических операций оригинальный объект остается без изменений:

Big Integer. Multiply(BigInteger, BigInteger) Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Возвращает произведение двух значений BigInteger.

public: static System::Numerics::BigInteger Multiply(System::Numerics::BigInteger left, System::Numerics::BigInteger right);
public static System.Numerics.BigInteger Multiply (System.Numerics.BigInteger left, System.Numerics.BigInteger right);
static member Multiply : System.Numerics.BigInteger * System.Numerics.BigInteger -> System.Numerics.BigInteger
Public Shared Function Multiply (left As BigInteger, right As BigInteger) As BigInteger
Параметры

Первое число для умножения.

Второе число для умножения.

Возвращаемое значение

Произведение параметров left и right .

Примеры

В следующем примере выполняется умножение с двумя длинными целыми числами. Поскольку результат превышает диапазон длинного целого числа, OverflowException возникает исключение , и Multiply для обработки умножения вызывается метод . Обратите внимание, что для C# требуется использовать ключевое checked слово (как в этом примере) или /checked+ параметр компилятора, чтобы убедиться, что при числовом переполнении возникает исключение.

long number1 = 1234567890; long number2 = 9876543210; try < long product; product = checked(number1 * number2); >catch (OverflowException)
Dim number1 As Long = 1234567890 Dim number2 As Long = 9876543210 Try Dim product As Long product = number1 * number2 Console.WriteLine(product.ToString("N0")) Catch e As OverflowException Dim product As BigInteger product = BigInteger.Multiply(number1, number2) Console.WriteLine(product.ToString) End Try 

Комментарии

Метод Multiply реализуется для языков, которые не поддерживают перегрузку операторов. Его поведение идентично умножению с помощью оператора умножения. Кроме того, Multiply метод является полезной заменой оператора умножения при создании экземпляра переменной BigInteger путем присвоения ей продукта, являющегося результатом умножения, как показано в следующем примере.

// The statement // BigInteger number = Int64.MaxValue * 3; // produces compiler error CS0220: The operation overflows at compile time in checked mode. // The alternative: BigInteger number = BigInteger.Multiply(Int64.MaxValue, 3); 
' The statement ' Dim number As BigInteger = Int64.MaxValue * 3 ' produces compiler error BC30439: Constant expression not representable in type 'Long'. ' The alternative: Dim number As BigInteger = BigInteger.Multiply(Int64.MaxValue, 3) 

При необходимости этот метод автоматически выполняет неявное преобразование других целочисленных типов в BigInteger объекты . Это показано в примере в следующем разделе, где Multiply методу передаются два Int64 значения.

Применяется к

См. также раздел

Класс Math и пакет java.math

Класс Math содержит методы, связанные с геометрией и тригонометрией и прочей математики. Методы реализованы как static, поэтому можно сразу вызывать через Math.methodName() без создания экземпляра класса.

В классе определены две константы типа double: E и PI.

Популярные методы для тригонометрических функций принимают параметр типа double, выражающий угол в радианах.

  • sin(double d)
  • cos(double d)
  • tan(double d)
  • asin(double d)
  • acos(double d)
  • atan(double d)
  • atan2(double y, double x)

Существуют также гиперболические функции: sinh(), cosh(), tanh().

Экспоненциальные функции: cbrt(), exp(), expm1(), log(), log10(), log1p(), pow(), scalb(), sqrt().

Из них хорошо знакомы возведение в степень — pow(2.0, 3.0) вернёт 8.0.

Также популярен метод для извлечения квадратного корня — sqrt(4.0). Если аргумент меньше нуля, то возвращается NaN. Похожий метод cbrt() извлекает кубический корень. Если аргумент отрицательный, то и возвращаемое значение будет отрицательным: -27.0-> -3.0.

  • abs() — возвращает абсолютное значение аргумента
  • ceil() — возвращает наименьшее целое число, которое больше аргумента
  • floor() — возвращает наибольшее целое число, которое меньше или равно аргументу
  • max() — возвращает большее из двух чисел
  • min() — возвращает меньшее из двух чисел
  • nextAfter() — возвращает следующее значение после аргумента в заданном направлении
  • nextUp() — возвращает следующее значение в положительном направлении
  • rint() — возвращает ближайшее целое к аргументу
  • round() — возвращает аргумент, округлённый вверх до ближайшего числа
  • ulp() — возвращает дистанцию между значением и ближайшим большим значением
  • copySign() — возвращает аргумент с тем же знаком, что у второго аргумента
  • getExponent() — возвращает экспоненту
  • IEEEremainder() — возвращает остаток от деления
  • hypot() — возвращает длину гипотенузы
  • random() — возвращает случайное число между 0 и 1 (единица в диапазон не входит)
  • signum() — возвращает знак значения
  • toDegrees() — преобразует радианы в градусы
  • toRadians() — преобразует градусы в радианы

Вычислим наибольшее и наименьшее числа из двух заданных значений.

 double value1 = 9.14; double value2 = 9.15; System.out.println("Maximum of value1 and value2 is " + Math.max(value1, value2)); System.out.println("Minimum of value1 and value2 is " + Math.min(value1, value2)); 

Большие числа

Если вам не хватает точности основных типов для представления целых и вещественных чисел, то можно использовать классы BigInteger и BigDecimal из пакета java.math, которые предназначены для выполнения действий с числами, состоящими из произвольного количества цифр.

Для преобразования обычного числа в число с произвольной точностью (называемое большим числом) вызывается статический метод valueOf():

 BigInteger bigIntegerA = BigInteger.valueOf(42); 

При работе с большими числами нельзя использовать привычные математические операции с помощью + или * и т.п. Вместо них следует использовать специальные методы add() (сложение), multiply() (умножение), divide() (деление) и т.д.

 BigInteger bigIntegerA = BigInteger.valueOf(42); BigInteger bigItBigIntegerB = bigIntegerA.add(bigIntegerA); BigInteger bigIntegerC = bigIntegerA.multiply(bigIntegerA); 

В обычной практике эти числа используются редко.

Multiply java что это

Встроенные примитивные числовые типы не всегда могут подходить для определенных программ. Например, необходимо хранить и использовать в программе очень большие числа, которые выходят за пределы допустимых значений для типов long и double. В этом случае для работы с числовыми данными можно использовать два дополнительных типа из пакета java.math — BigInteger (для целочисленных данных) и BigDecimal (для чисел с плавающей точкой).

Основные методы класса BigInteger:

  • BigInteger add(BigInteger other) : возвращает сумму двух чисел
  • BigInteger subtract(BigInteger other) : возвращает разность двух чисел
  • BigInteger multiply(BigInteger other) : возвращает произведение двух чисел
  • BigInteger divide(BigInteger other) : возвращает частное двух чисел
  • BigInteger mod(BigInteger other) : возвращает остаток от целочисленного деления двух чисел
  • BigInteger sqrt() : возвращает квадратный корень числа
  • int compareTo(BigInteger other) : сравнивает два числа. Возвращает -1, если текущий объект меньше числа other, 1 — если текущий объект больше и 0 — если числа равны
  • static BigInteger valueOf(long x) : возвращает объект BigInteger, значение которого равно числу, переданному в качестве параметра
  • int intValue() : конвертирует объект BigInteger в объект int
  • byte byteValue() : преобразует объект BigInteger в byte
  • short shortValue() : преобразует объект BigInteger в short
  • long longValue() : преобразует объект BigInteger в long

Основные методы класса BigDecimal:

  • BigDecimal add(BigDecimal other) : возвращает сумму двух чисел
  • BigDecimal subtract(BigDecimal other) : возвращает разность двух чисел
  • BigDecimal multiply(BigDecimal other) : возвращает произведение двух чисел
  • BigDecimal divide(BigDecimal other) : возвращает частное двух чисел
  • BigDecimal divide(BigDecimal other, RoundingMode mode) : результат деления двух чисел, округленное в соответствии с режимом mode
  • int compareTo(BigDecimal other) : сравнивает два числа. Возвращает -1, если текущий объект меньше числа other, 1 — если текущий объект больше и 0 — если числа равны
  • static BigDecimal valueOf(double x) : возвращает объект BigDecimal, значение которого равно числу, переданному в качестве параметра
  • double doubleValue() : преобразует объект BigDecimal в double
  • float floatValue() : преобразует объект BigDecimal в float

Пример использования классов BigInteger и BigDecimal:

import java.math.*; public class Program < public static void main(String[] args) < BigInteger a = BigInteger.valueOf(2147483647); BigInteger b = BigInteger.valueOf(2147483641); //a = a * b; // так нельзя a = a.multiply(b); System.out.println(a); // 4611686001247518727 long x = a.longValue(); System.out.println(x); // 4611686001247518727 BigDecimal c = BigDecimal.valueOf(2325.06); BigDecimal d = BigDecimal.valueOf(215.06); c = c.subtract(d.multiply(BigDecimal.valueOf(2.1))); System.out.println(c); // 1873.434 double y = c.doubleValue(); System.out.println(y); // 1873.434 >>

Стоит отметить, несмотря на то, что объекты BigInteger и BigDecimal представляют числа, мы не можем применять с ними стандартные арифметические операции. Все математические действия с данными объектами идут через их методы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *