2015-01-06 3 views
0

Может кто-нибудь объяснить мне, почемуЭкспонент Math в Java

System.out.println(100*(1-10^(-10/10))); 

результаты в число «800» быть распечатаны? Правильный ответ - 90, когда вы используете калькулятор. Как я буду делать это вычисление в Java?

Спасибо!

ответ

7

Оператор ^ не делает то, что вы думаете. Это bitwise-xor

Необходимо изучить метод Math.pow().

+1

См. Две ссылки выше. Объяснение xor by @polygenelubricants особенно подробно. – Kon

+2

В дополнение к этому операция на самом деле больше похожа: '100 * ((1-10)^(- 10/10)))', поскольку оператор '-' имеет более высокий приоритет, чем оператор'^'. –