Math.cos e Math.sin

3 respostas
S

galera
to precisando utilizar seno e cosseno aqui em java
o problema é que utilizando Math.cos(angulo) e Math.sin(angulo) ta retornando resultado errado
pq isso?

Ex:
Math.sin(90) ta retornando 0.89 quando devia retornar 1
e Math.cos(90) ta retornando -0.44 quando deveria estar retornando 0

3 Respostas

D

A informação que deve ser passada para Math.sin e Math.cos é em radianos não em graus...

a formula para converter eh:

rad = ( pi / 180 ) * ang; 

System.out.println( Math.sin( Math.PI/180*90) );

acho que resolve o seu problema.

L

Olá

Parece ser problemas normais que acontecem desde quando foi inventado o primeiro computador quando números reais são armazenados em formato binário. Imprima o valores e verá que tem muito mais decimais:

Math.sin(90): 0.8939966636005579
Math.cos(90): -0.4480736161291702

Porém se você quiser calcular o valor em radianos que é o default das funções trigonométricas de Math, precisa fazer assim:

public class Teste {
    public static void main(String args[]) {
        System.out.println("Math.sin(Math.PI/2): " + Math.sin(Math.PI/2));
        System.out.println("Math.cos(Math.PI/2): " + Math.cos(Math.PI/2));
    }
}
E o resultado será o que você espera:
C:[code]
C:\&gt java Teste
Math.sin(Math.PI/2): 1.0
Math.cos(Math.PI/2): 6.123233995736766E-17

C:\&gt
gt java Teste Math.sin(Math.PI/2): 1.0 Math.cos(Math.PI/2): 6.123233995736766E-17 C:
C:\&gt java Teste
Math.sin(Math.PI/2): 1.0
Math.cos(Math.PI/2): 6.123233995736766E-17

C:\&gt
gt[/code]

Ou usar Math.toRadians() para converter os ângulos dados em graus.

[]s
Luca

S

opa
deu certinho aqui galera
valeu a ajuda

Criado 14 de outubro de 2006
Ultima resposta 14 de out. de 2006
Respostas 3
Participantes 3