Problemas com a Class Math

8 respostas
alltairr

Pessoal estou com um probleminha com o metodo Math.acos, ele não esta retornando o mesmo valor que aparece no Excel. Segue abaixo o problema que estou encontrando.

double valor = 0.9999999796960186;

System.out.pintln(Math.acos(valor));

Ele imprime 2.0151417545072214E-4 que na realidade deveria ser 0.00020151417545072214 e com isso não posso dar continuidade em meu metodo.

Se alguem ja viu esse problema e conseguiu resolver por favor me ajude. Obrigado!

8 Respostas

E

O resultado do Java é exatamente igual ao do Excel, e está correto. Por acaso você conhece notação científica?

alltairr

Não conheço não amigo! os numeros são iguais o que eu não entendi foi o E-4 no final do numero que o Java imprime.

Abdon

O E-4 é a mesma coisa que 10 (elevado) a -4, ou seja é so vc pegar o seu numero e dividir por 10000 que vc tem o mesmo resultado, o java so esta fazendo notação científica.

alltairr

Quando eu divido ele por 10000 o valor vai para E-8 estou precisando imprimir ele com as casas decimais corretas Ex: 0.00020151417545072214

E

Dica: brinque um pouco com uma calculadora científica (como uma Casio FX-82).

http://www.americanas.com.br/AcomProd/5359/172680

Se você manuseasse um pouco uma calculadora dessas, teria desconfiado que o “E” em Java, VB, Delphi, Fortran etc. quer dizer “vezes 10 elevado a…”

E

Senhor Altair, por que é que você precisa imprimir com esse monte de zeros na frente? Isso não é boa prática em matemática. O correto é mesmo mostrar em notação científica.

Se você realmente precisa mostrar com (digamos) 10 algarismos depois da vírgula, pode usar:

System.out.printf ("%.10f", Math.acos (0.9999999796960186));

Isso vai mostrar com 10 algarismos, mas vai arredondar depois do décimo. Como eu disse, o correto é usar notação científica.

alltairr

Vlw meu brother ovelha ajudou a vera abra!

alltairr

Obrigado a Todos!

Criado 4 de fevereiro de 2010
Ultima resposta 4 de fev. de 2010
Respostas 8
Participantes 3