Questão FC373234
Um Analista estão desenvolvendo um sistema em Java que realiza cálculos e precisa garantir que eles sejam precisos. Nesse sistema, digitou o código abaixo. public class Calcular {
Linguagens de Programação
FCC · 2024
Um Analista estão desenvolvendo um sistema em Java que realiza cálculos e precisa garantir que eles sejam precisos. Nesse sistema, digitou o código abaixo.
public class Calcular {
public static void main (String [] args) {
double t = 0.05;
int p = 1000;
int tmp = 10;
double res ;
res = p * (1 + t) ^ tmp ;
System.out.println (*Resultado: " + res);
}
}
O problema nesse código é que
- o operador correto de exponenciação em Java é **.
- o operador * não pode ser usado entre p e (l +t).
- a variável res deve ser do tipo int para armazenar o valor calculado.
- a variável t deve ser do lipo float.
- o operador ^ não é o correto para exponenciação em Java.
Mostrar resposta e comentário
Gabarito
Errado
Comentário do professor
Em Java o operador ^ não realiza exponenciação: ele representa o operador bit a bit XOR (ou exclusivo) quando aplicado a tipos inteiros, e operador lógico XOR quando aplicado a booleanos.
Para calcular potências deve-se usar o método Math.pow(), que retorna um double. A expressão matemática desejada é \(res = p \times (1+t)^{tmp}\).
No código corrigido a linha fica:
res = p * Math.pow(1 + t, tmp);
Assim primeiro se calcula \((1+t)^{tmp}\) com Math.pow(base, expoente) e depois multiplica-se por p, garantindo o resultado numérico correto em ponto flutuante.
Conteúdo do catálogo FC Concursos · Atualizado em