Negocio

Multiplicando em Java: Método e exemplos

Multiplicando em Java

Java fornece várias operações aritméticas que você pode usar em seus programas. A linguagem suporta declarações desde as mais simples às incrivelmente complexas. Nesta lição, começaremos com o básico e destacaremos rotinas mais complicadas.

Para revisão, aqui estão os operadores Java para aritmética:

Operador Usar
* Multiplicação
/ Divisão
+ Adição
Subtração
% Módulo / resto

Para multiplicar números em Java, usaremos o asterisco (*) entre cada número ou variável.

int x = 12; 
int y = 13;
int z = x * y;
System.out.println ("Multiplicação:" + z);

A saída está listada abaixo:

Java multiplique a saída de amostra

Combinando declarações

Java oferece suporte total a instruções aninhadas e à combinação de operações aritméticas. Lembre-se de que a regra de ordem de operações se aplica!

Multiplicação e divisão são processadas antes da adição / subtração.

Recomendamos que você verifique seus cálculos, especialmente à medida que eles ficam mais complexos. Insira alguns valores de amostra e faça cálculos matemáticos, garantindo que seu resultado corresponda ao que o Java calcula.

Ao verificar a primeira equação, teríamos o seguinte: 3 + (6 * 9). A multiplicação vem primeiro. Portanto, 6 * 9 é 54; em seguida, adicionamos 3 para obter 57. A próxima equação move os parênteses, mas também altera a matemática. (3 + 6) * 9. Há apenas um número sendo multiplicado, então pegamos 9 vezes o resultado de 3 + 6 (9). O resultado é 81.

Aqui está o código Java:

int x = 3; 
int y = 6;
int z = 9;
// variação 1
int q = x + (y * z);
System.out.println ("Resultado 1 =" + q);
variação 2
q = (x + y) * z;
System.out.println ("Resultado 2 =" + q);

Depois de executar o programa, nossos cálculos estão corretos.

Ordem de multiplicação Java de saída de operações

Até agora, mostramos a multiplicação de inteiros. O que acontece se os números ficarem muito grandes para o int? Uma opção é usar float ou double para fazer suas contas. Também existe outra opção para int ou long.

Transbordar

Como estamos multiplicando números, existe o risco de que o número resultante seja maior do que o nosso tipo de dados pode conter. Mesmo que os tipos de dados int e long possam conter alguns números bastante grandes, quando você começa a multiplicar, as chances de estouro aumentam drasticamente.

Java fornece uma classe central chamada Math; com esta classe existem vários métodos. Um deles é multiplyExact . Ele aceita dois valores, int ou long. Se o Java estourar, ele lançará um erro com o qual podemos lidar. Como colocamos tudo dentro de um bloco try e catch, podemos detectar esse erro e fazer algo, em vez de deixar o programa travar e queimar. Ou pior: o Java realmente tenta a matemática, mas o resultado são apenas números sem sentido.

Aqui está um exemplo de multiplyExact em ação. Novamente, isso é bastante avançado, mas é bom ter conhecimento dos vários métodos disponíveis para aritmética.

int x = 125025994; 
int y = 100547903;
int z = x * y;
// vamos tentar multiplyexact; se falhar, mostra uma mensagem
try {int newResult = Math.multiplyExact (x, y);
  System.out.println ("Fixo:" + newResult);
} catch (ArithmeticException a) {
  system.out.println ("Overflow! ');
}

Neste exemplo, o código irá estourar e a mensagem será exibida:

Saída multiplyExact Java

Se não tivéssemos detectado esse erro, o Java pode travar ou apenas exibir um valor estranho, como -13543439234. Outra opção direta para lidar com grandes números é escolher o tipo de dados que pode conter os maiores números.

Duplo / Flutuante / Longo

Outra opção é se limitar a multiplicar variáveis ​​que são duplas. É possível exceder o limite de um duplo, mas muito menos comum do que inteiro ou longo. Um duplo tem a maior precisão e pode armazenar os maiores valores. Para números não decimais, o tipo de dados longos também funciona bem. Mas quando se trata de programas complexos, o duplo pode suportar os maiores valores.

Se você precisar converter int ou long em double, precisará criar uma nova instância de uma classe de wrapper para avançar com o método doubleValue (). Uma classe wrapper envolve os tipos primitivos Java em uma classe, completa com variáveis ​​e métodos.

O código a seguir é avançado, mas esteja ciente de que você pode alterar um int até um duplo, se necessário. Se você sabe que fará uma multiplicação pesada, pode escolher criar duplas em primeiro lugar. Mas a consciência desses métodos é importante; você os verá novamente!

// converte xey em 
número inteiro duplo newX = new Integer (x);
double xD = newX.doubleValue ();
Inteiro novoY = novo Inteiro (y);
double yD = newY.doubleValue ();
System.out.println ("Converted =" + xD * yD);

E quando o código é executado, obtemos a seguinte saída:

Saída Java doubleValue

Resumo da lição

O operador de multiplicação em Java é o asterisco (*). Java suporta operações aritméticas que variam de simples a muito complexas, incluindo instruções combinadas. Lembre-se de que o Java segue a ordem das operações, portanto, verifique seu trabalho para ter certeza de que os resultados são os esperados.

Ao se multiplicar, os números podem ficar muito grandes; use long, float ou double para suportar números maiores. A classe matemática tem um método multiplyExact que tentará multiplicar dois longos ou dois ints: ele retorna um erro capaz de interceptar se falhar. Se necessário, use classes de wrapper ; classes abrangentes para cada tipo primitivo. Por exemplo, você pode converter inteiro em duplo usando a classe Integer e o método doubleValue ().