Перейти к содержимому

Multiply java что это

  • автор:

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 значения.

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

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

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 представляют числа, мы не можем применять с ними стандартные арифметические операции. Все математические действия с данными объектами идут через их методы.

Класс 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); 

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

Шпаргалка по типам чисел в Java

Составили шпаргалку по числам в Java. Рассмотрели целочисленный тип, числа с плавающей точкой, BigInteger и BigDecimal и символьный тип.

Одним из ключевых аспектов работы с числами в Java является разнообразие типов данных, предоставляемых языком.

В Java существуют различные типы чисел, каждый из которых имеет свои особенности и предназначен для выполнения определенных задач. Среди них:

  1. Целочисленные типы
  2. Числа с плавающей точкой
  3. Символьный тип
  4. Типы чисел BigInteger и BigDecimal

Рассмотрим их поподробнее.

Целочисленные типы в Java

В Java есть 4 цельночисленных типа:

  • byte : 8-битное целое число, со знаком (от -128 до 127 );
  • short : 16-битное целое число, со знаком (от -32,768 до 32,767 );
  • int : 32-битное целое число, со знаком (от -2,147,483,648 до 2,147,483,647 );
  • long : 64-битное целое число, со знаком (от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 ).

Целочисленные типы разной битности в Java используются для представления целых чисел с разным диапазоном значений. Каждый тип имеет определенный размер в битах, что определяет, какой диапазон значений может быть представлен.

Такое разделение по битности нужно, чтобы сэкономить память и ресурсы процессора во время выполнения кода.

Например, использование типов с меньшей битностью, таких как byte или short , позволяет экономить память при хранении большого количества целых чисел, когда размер не является критичным и диапазон значений ограничен.

Как стать разработчиком с нуля

Если нам нужно хранить возраст людей, которое будет находиться в диапазоне от 0 до 150, можно использовать тип byte , который занимает только 8 бит и может хранить значения от -128 до 127.

Пример кода с использованием целочисленного типа int :

public class IntegerExample < public static void main(String[] args) < // Объявление переменных целочисленных типов int number1 = 10; int number2 = 5; int result; // Операции с целыми числами result = number1 + number2; // Сложение System.out.println("Сумма: " + result); result = number1 - number2; // Вычитание System.out.println("Разность: " + result); result = number1 * number2; // Умножение System.out.println("Произведение: " + result); result = number1 / number2; // Целочисленное деление System.out.println("Целочисленное деление: " + result); int remainder = number1 % number2; // Остаток от деления System.out.println("Остаток от деления: " + remainder); // Инкремент и декремент number1++; // Инкрементирование на 1 number2--; // Декрементирование на 1 System.out.println("Инкремент number1: " + number1); System.out.println("Декремент number2: " + number2); >> 
Сумма: 15 Разность: 5 Произведение: 50 Целочисленное деление: 2 Остаток от деления: 0 Инкремент number1: 11 Декремент number2: 4 

Числа с плавающей точкой в Java

В Java есть 2 типа чисел с плавающей точкой:

  • float : 32-битное число с плавающей точкой (от 1.4e-45 до 3.4e+38 ) с точностью около 7 знаков после запятой;
  • double : 64-битное число с плавающей точкой (от 4.9e-324 до 1.8e+308 ) с точностью около 15 знаков после запятой.

Числа с плавающей точкой в Java используются для представления нецелых дробных чисел c десятичными частями. Числа с плавающей точкой предоставляют широкий диапазон значений и большую точность, чем целочисленные типы.

Они используются, к примеру, при работе с финансовыми данными, научными вычислениями или графиками функций, когда нужны точные значения.

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

Тип float может представлять числа от примерно 1.4e-45 до 3.4e+38 , а тип double может представлять числа от примерно 4.9e-324 до 1.8e+308 .

Cборщики (бандлеры) — просто о сложном во Frontend-разработке

Тип float имеет точность около 7-8 знаков после запятой, а тип double имеет точность около 15-16 знаков после запятой.

Пример кода с использованием чисел с плавающей точкой:

public class FloatingPointExample < public static void main(String[] args) < // Объявление переменных чисел с плавающей точкой double number1 = 3.14; double number2 = 2.71; double result; // Операции с числами с плавающей точкой result = number1 + number2; // Сложение System.out.println("Сумма: " + result); result = number1 - number2; // Вычитание System.out.println("Разность: " + result); result = number1 * number2; // Умножение System.out.println("Произведение: " + result); result = number1 / number2; // Деление System.out.println("Деление: " + result); >> 
Сумма: 5.85 Разность: 0.42999999999999994 Произведение: 8.5094 Деление: 1.1583011583011583 

Символьный тип в Java

Символьный тип char — это 16-битный символ Unicode (от \u0000 до \uffff ). Тип char является псевдоцелочисленным типом, поэтому значения этого типа можно задавать в виде числа – кода символа из таблицы кодировки UTF-16.

Он позволяет работать с отдельными символами, включая буквы, цифры, знаки препинания, специальные символы и другие символы, которые могут быть отображены на экране или использованы в текстовых данных.

Символьным типом обозначаются названия переменных, текстовые сообщения, метки, названия файлов.

Также он позволяет работать с символами управления, которые используются для форматирования текста или внедрения специальных символов в вывод. Например, символ перевода строки \n или символ табуляции \t используются для управления выводом текста или форматирования.

Пример использования символьного типа в Java:

public class CharExample < public static void main(String[] args) < char grade = 'A'; char dollarSign = '$'; char digit = '4'; char specialChar = '#'; System.out.println("Оценка: " + grade); System.out.println("Символ доллара: " + dollarSign); System.out.println("Цифра: " + digit); System.out.println("Специальный символ: " + specialChar); >> 
Оценка: A Символ доллара: $ Цифра: 4 Специальный символ: # 

Типы чисел BigInteger и BigDecimal в Java

В Java есть 2 уникальных типа чисел.

  • BigInteger : используется для работы с очень большими целыми числами;
  • BigDecimal : используется для работы с очень большими числами с плавающей точкой, с высокой точностью.

Типы чисел BigInteger и BigDecimal в Java используются для работы с большими и точными числами, которые выходят за диапазоны, предоставляемые обычными типами данных, такими как int или double .

BigInteger используется для работы с целыми числами произвольного размера. Он предоставляет методы для выполнения арифметических операций, таких как сложение, вычитание, умножение и деление, над числами с произвольным количеством цифр. Это делает BigInteger особенно полезным при работе с большими числами, которые превышают диапазон типов данных int или long .

BigDecimal , в свою очередь, используется для работы с числами с плавающей точкой произвольной точности. В отличие от типов данных float и double , которые представляют числа с ограниченной точностью, BigDecimal предоставляет точные результаты при выполнении арифметических операций с десятичными числами. Это особенно важно при работе с финансовыми операциями, где требуется высокая точность расчетов.

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

import java.math.BigInteger; import java.math.BigDecimal; public class BigNumberExample < public static void main(String[] args) < BigInteger bigInteger = new BigInteger("12345678901234567890"); BigDecimal bigDecimal = new BigDecimal("3.141592653589793238462643383"); System.out.println("BigInteger: " + bigInteger); System.out.println("BigDecimal: " + bigDecimal); BigInteger result1 = bigInteger.add(new BigInteger("98765432109876543210")); System.out.println("Сумма BigInteger: " + result1); BigDecimal result2 = bigDecimal.multiply(new BigDecimal("2.718281828459045")); System.out.println("Произведение BigDecimal: " + result2); >> 
BigInteger: 12345678901234567890 BigDecimal: 3.141592653589793238462643383 Сумма BigInteger: 111111111011111111100 Произведение BigDecimal: 8.53973422267357976068929674195 

Заключение

Надеемся, вам стало понятнее, какие типы чисел в Java использовать для решения ваших задач. Обращайтесь к этой статье как к шпаргалке, если у вас возникли сложности в определении типов данных.

Также подпишитесь на тэг Java, чтобы следить за новыми статьями по языку программирования.

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

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